构造函数和析构函数中调用虚函数
c+++primer P497
"构造或析构期间的对象类型对虚函数的绑定有影响"-->这句话什么意思啊?
"如果在构造函数或析构函数中调用虚函数,则运行的是为构造函数或析构函数自身定义的版本"--》是不是如果在构造函数或析构函数中调用虚函数,那么虚函数不起作用了?
菜鸟看不懂啊 有什么实例可以帮助理解这块内容啊 谢谢了先
[解决办法]
构造函数里头,调用虚函数,派生类对象还没有创建出来,所以调用的是父类的函数
析构函数里头,同理,派生类的对象已经析构,就只能调用到父类的函数
例如;
class A
{
A()
{
this->print(); //这边调用的函数 A::print(), 不是B::print()
}
virtual void print()
{
}
}
class B: public A
{
virtual void print()
{
}
};
[解决办法]