万恶的void指针
class A
{
public:
A(int y): x(y)
{}
void print()
{
cout<<"this is a:"<<get()<<endl;
}
int get()
{
return x;
}
private:
int32_t x;
};
class B: public A
{
public:
B(int y):A(y){}
virtual void print()
{
cout<<"this is b:"<<get()<<endl;
}
};
int main()
{
B b(2);
b.print();
A *pa = &b;
pa->print();
cout<<"add b "<<&b<<endl;
cout<<"add pa"<<pa<<endl;
void *vpb = (void*)&b;
pa = (A*)vpb;
cout<<"add vpa"<<pa<<endl;
pa->print();
return 0;
}
void指针真万恶啊