class Base
{
public:
Base(){Foo();}
~Base(){Foo();}
virtual void Foo(){std::cout<<"base";}
};
class Derived: public Base
{
public:
Derived(){Foo();}
~Derived(){Foo();}
void Foo(){std::cout<<"derived";}
};
//main
{
Derived d;
}
知道为什么这段代码会打印出“base”和“derived”吗?
我知道建议不要将虚函数调用放在构造函数或析构函数中,我只想知道为什么上面的代码会有这种行为。谢谢