|
|
От: |
Беликович
|
|
| Дата: | 25.01.05 22:35 | ||
| Оценка: | |||
class A{
public:
virtual void RunA()=0;
};
class B{
public:
virtual void RunB()=0;
};
class C: public A, public B{
public:
virtual void RunA(){ printf("RunA\n"); }
virtual void RunB(){ printf("RunB\n"); }
};
int _tmain(int argc, _TCHAR* argv[])
{
C c;
A* pa = &c;
pa->RunA();
B* pb = (B*)pa;
pb->RunB(); // error! Call RunA instead RunB !
B* pb1 = (B*)(C*) pa; // pb1 != pb
pb1->RunB(); // good!
return 0;
}