class A
{
public:
virtual void foo() = 0;
};
class B
{
public:
virtual void goo(int a) = 0;
};
class C : public B, public A
{
public:
virtual void foo() { };
virtual void goo(int a) { };
};
int main()
{
B* b = new C;
A* a = (A*)b;
A* a1 = dynamic_cast<A*>(b);
a->foo();//error
a1->foo();//ok
}