class Base{ public: int a; Base(){print();}; virtual ~Base(){ g_iCount += 1;} public: int getA(){} void setA(int i){} virtual void print(){cout<<"1"<<endl;} }; class Derive:public Base { public: Derive(){print();} ~Derive(){g_iCount += 2;} public: void print(){cout<<"2"<<endl;} }; void main() { Derive d ; Base *pb = &d; Derive *pd = &d; } 父类的构造函数中使用虚函数,在构造父类对象时,子类还未构造成功,因此,这时虚函数不起作用。