虚拟析构函数作用测试

来源:互联网 发布:aws centos密码 编辑:程序博客网 时间:2024/05/17 04:56
#include <iostream>using namespace std;class CA{private:public:CA(){cout << "构造" <<endl;};~CA(){cout << "析构CA" <<endl;};};class CTest:public CA{private:public:CTest(){cout << "构造CTest" <<endl; }~CTest(){cout << "析构CTest" <<endl;}};int main(int argc, char *argv[]){CTest *test = new CTest();CA *ca = test;delete ca;return 0;}
运行结果:

构造
构造CTest
析构CA
Press any key to continue


此时并没有析构子类对象

如果这样写的话:

#include <iostream>using namespace std;class CA{private:public:CA(){cout << "构造" <<endl;};virtual ~CA(){cout << "析构CA" <<endl;};};class CTest:public CA{private:public:CTest(){cout << "构造CTest" <<endl; }~CTest(){cout << "析构CTest" <<endl;}};int main(int argc, char *argv[]){CTest *test = new CTest();CA *ca = test;delete ca;return 0;}
运行结果:

构造
构造CTest
析构CTest
析构CA
Press any key to continue

可以析构子类.......

原创粉丝点击