class A
{
public:
A() { this->Foo(); }
virtual void Foo()
{
cout << "A:Foo"<<endl;
}
};
class B:public A
{
public:
B() { this->Foo(); }
virtual void Foo()
{
cout << "B:Foo"<<endl;
}
};
main()
{
B obj;
return 0;
}
其实考察的是在构造函数中的虚函数调用问题。
在C++中,在ctor 和dtor中调用虚函数,会不遵守多态的原则,也就是说不会调用派生类的函数。