class IBase {
};
class IA : virtualpublic IBase {
virtualvoid methodA() = 0;
};
class IB {
virtualvoid methodB() = 0;
};
class IC : public IA, public IB {
};
class ClassA : public IA {
void methodA(){...};
};
class ClassC : public IC, public ClassA {
void methodB(){...};
};
int main()
{
ClassC ObjC;
};
"Compiling" this pseudo-code I get the error:
ClassC ObjC: "cannot instantiate abstract class due to following members:"
IA::methodA();
Why this happens?
The IA::methodA() is implemented in ClassA and ClassC derives from it, so I expect that calling ClassC::methodA() generates a call to ClassA::methodA()