![]() |
#2
鑫乐源2012-01-03 23:35
|

#include <string>
#include <iostream>
using namespace std;
struct A
{
virtual void FunA() = 0;
};
struct C : public A
{
C():num(1000){}
virtual void FunA()
{
cout<<"FunA:"<<num*num<<endl;
}
long num;
};
int _tmain(int argc, _TCHAR* argv[])
{
C* c = new C;
A* a;
void* p = c;
a = (A*)p;
a->FunA();
delete c;
return 0;
}
我最困惑的地方是:
1、有时候这样转换是没有问题的,有时候就会出问题。
2、虚表到底是保存在什么位置?为什么转成别的类型指针后虚表会丢失?