其他分享
首页 > 其他分享> > 77、构造函数和析构函数可以调用虚函数吗,为什么

77、构造函数和析构函数可以调用虚函数吗,为什么

作者:互联网

1) 在C++中,提倡不在构造函数和析构函数中调用虚函数;

 

2) 构造函数和析构函数调用虚函数时都不使用动态联编,如果在构造函数或析构函数中调用虚函数,则 运行的是为构造函数或析构函数自身类型定义的版本;

 

3) 因为父类对象会在子类之前进行构造,此时子类部分的数据成员还未初始化,因此调用子类的虚函数 时不安全的,故而C++不会进行动态联编;

 

4) 析构函数是用来销毁一个对象的,在销毁一个对象时,先调用子类的析构函数,然后再调用基类的析 构函数。所以在调用基类的析构函数时,派生类对象的数据成员已经销毁,这个时候再调用子类的虚函 数没有任何意义。

 

标签:调用,函数,子类,77,析构,和析构,构造函数
来源: https://www.cnblogs.com/crbhf/p/14992178.html