#include <iostream>
using namespace std;
struct IA {
virtual void calcA() = 0;
};
struct A : public IA {
void calcA() { IA::calcA(); }
};
int main() {
// IA ia; // error: IA is abstract
A a;
a.calcA();
return 0;
}
void IA::calcA() { cout << "default calcA()"; }
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IElBIHsKCXZpcnR1YWwgdm9pZCBjYWxjQSgpID0gMDsKfTsKCnN0cnVjdCBBIDogcHVibGljIElBIHsKCXZvaWQgY2FsY0EoKSB7IElBOjpjYWxjQSgpOyB9Cn07CgppbnQgbWFpbigpIHsKCS8vIElBIGlhOyAvLyBlcnJvcjogSUEgaXMgYWJzdHJhY3QKCUEgYTsKCWEuY2FsY0EoKTsKCXJldHVybiAwOwp9Cgp2b2lkIElBOjpjYWxjQSgpICB7IGNvdXQgPDwgImRlZmF1bHQgY2FsY0EoKSI7IH0=