C++中 构造函数 析构函数 能否调用虚函数的问题
来源:互联网 发布:淘宝01店手机是真的吗 编辑:程序博客网 时间:2024/05/16 02:37
首先,给出结论:C++中 在构造函数与析构函数中都是可以调用虚函数的,只是该调用并不发生多态行为,仅仅是调用自身类中定义的版本。
对于该结论不应怀疑,C++primer第四版中文版 497页有说明!
下面给出代码解释:
#include <iostream>using namespace std;class A{public:A(){cout << "A构造函数";Test();}virtual ~A(){cout << "A析构函数";cout << "A::Test()" << endl;}virtual void Test(){cout << "A::Test()" << endl;}};class B :public A{public:B(){cout << "B构造函数";Test();}~B(){cout << "B析构函数";Test();}virtual void Test(){cout << "B::Test()" << endl;}};int main(int argc, char* argv[]){cout << "构造对象:" << endl;A* pA = new B();cout << endl<< "动态调用:" << endl;pA->Test();cout << endl;cout << "析构对象:" << endl;delete pA;return 0;}两个类中都是一个 Test 虚函数,在各自的构造函数、析构函数中都有调用,但下面的结果很明显,调用的都是自己类的版本。
0 0
- C++中 构造函数 析构函数 能否调用虚函数的问题
- 构造函数和析构函数,在C++中能否声明为虚函数?构造函数和析构函数里面能否调用虚函数?
- C++ 构造函数和虚构函数中能否调用虚函数?
- 构造函数中调用虚函数能否实现多态
- 构造函数能否调用virtual 虚函数
- 构造函数中,类的成员函数中出现了异常,析构函数能否正常调用
- C++中构造函数和析构函数避免调用虚函数的问题 转载
- C++中构造函数和析构函数避免调用虚函数的问题
- C++中构造函数和析构函数避免调用虚函数的问题
- C++中构造函数和析构函数避免调用虚函数的问题
- C++中构造函数和析构函数避免调用虚函数的问题
- C++中构造函数和析构函数避免调用虚函数的问题
- C++中构造函数和析构函数避免调用虚函数的问题
- C++:构造函数中调用虚函数
- C++:构造函数中调用虚函数
- 构造函数和析构函数能否是虚函数
- C++:构造函数和析构函数能否为虚函数
- C++:构造函数和析构函数能否为虚函数
- [MTK] BT驱动调试总结
- glog 的使用
- Activity跳转交换数据
- Swap Nodes in Pairs
- 自定义分享
- C++中 构造函数 析构函数 能否调用虚函数的问题
- VS 调试和承载进程
- *.c~文件
- 小白笔记----------------------Mysql5.7.12之字符集设置
- adb怎么判断是否有root权限,并更改system/app内容
- 【程序中打印调用栈信息方法】 backtrace和backtrace_symbols函数
- 多线程
- MFC学习笔记3_消息对话框
- iOS 安装使用CocoaPods