构造函数跟析构函数里面都可以调用虚函数
2014-09-02 15:07
267 查看
构造函数跟析构函数里面都可以调用虚函数,编译器不会报错!
但是由于类的构造次序是由基类到派生类,所以在构造函数中调用虚函数,这个虚函数不会呈现出多态
相反,类的析构是从派生类到基类,当调用继承层次中某一层次的类的析构函数时往往意味着其派生类部分已经析构掉,所以也不会呈现出多态。(因此如果在基类中声明的是纯虚函数并且在基类的析构函数中调用之编译器会报错)
但是由于类的构造次序是由基类到派生类,所以在构造函数中调用虚函数,这个虚函数不会呈现出多态
相反,类的析构是从派生类到基类,当调用继承层次中某一层次的类的析构函数时往往意味着其派生类部分已经析构掉,所以也不会呈现出多态。(因此如果在基类中声明的是纯虚函数并且在基类的析构函数中调用之编译器会报错)
相关文章推荐
- 构造函数和析构函数能否声明为虚函数,能否在里面调用虚函数
- C++中函数调用中构造函数、析构函数、赋值过程
- C++继承中构造函数、析构函数调用顺序及虚函数的动态绑定
- C++中构造函数和析构函数避免调用虚函数的问题
- 【javascript】任何函数,只要通过new操作符来调用,那他就可以作为构造函数
- C++中构造函数和析构函数避免调用虚函数的问题
- 构造函数和析构函数中的虚函数调用
- 构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数
- 为什么不要在构造函数和析构函数中调用虚函数?
- 摘:C++中构造函数和析构函数避免调用虚函数的问题
- C++中构造函数和析构函数避免调用虚函数的问题
- C++继承中构造函数、析构函数调用顺序及虚函数的动态绑定
- 为什么构造函数不能声明为虚函数,析构函数可以声明为虚函数
- C++中构造函数和析构函数避免调用虚函数的问题 转载
- 《Effective C++ 》条款9:永远不要在构造函数或析构函数中调用虚函数
- 构造函数和析构函数中调用虚函数有什么问题?
- 不要在构造函数或析构函数里调用虚函数
- C++中构造函数和析构函数避免调用虚函数的问题
- 《Effective C++》不要在构造函数和析构函数中调用虚函数
- 构造函数和析构函数中调用虚函数有什么问题?