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
}








