重温C++之虚拟析构函数
2005-10-22 08:35
337 查看
虚拟函数的引入是为了实现多态性(polymorphism),而虚拟析构函数是怎么实现多态性的?我想通过以下例子进行说明。
#include <iostream>
using namespace std;
class employee{
public:
employee(){
cout << "employee construction" << endl;
}
~employee(){
cout << "employee destruction" << endl;
}
};
class programmer: public employee{
public:
programmer(){
cout << "programmer construction" << endl;
}
~programmer(){
cout << "programmer destruction" << endl;
}
};
void main(){
{
programmer pg;
}
cout << "---------------------------" << endl;
{
employee *pe = new programmer( );
delete pe;
}
}
output:
employee construction
programmer construction
programmer destruction
employee destruction
---------------------------
employee construction
programmer construction
employee destruction
#include <iostream>
using namespace std;
class employee{
public:
employee(){
cout << "employee construction" << endl;
}
~employee(){
cout << "employee destruction" << endl;
}
};
class programmer: public employee{
public:
programmer(){
cout << "programmer construction" << endl;
}
~programmer(){
cout << "programmer destruction" << endl;
}
};
void main(){
{
programmer pg;
}
cout << "---------------------------" << endl;
{
employee *pe = new programmer( );
delete pe;
}
}
output:
employee construction
programmer construction
programmer destruction
employee destruction
---------------------------
employee construction
programmer construction
employee destruction
相关文章推荐
- C++析构函数的自动调用(析构函数必须是虚拟的,这样删除父类指针指向的子类对象,才能同时调用两者的析构函数,否则就没有机会调用子类析构函数)
- [C++] C++中的虚拟析构函数有什么作用?
- c++ 虚拟析构函数
- C++箴言:多态基类中将析构函数声明为虚拟
- C++之虚拟析构函数
- [C++] C++中的虚拟析构函数有什么作用?
- C++箴言:多态基类中将析构函数声明为虚拟zz
- C++ 虚函数、多态性的演示 -- 虚拟析构函数
- C++虚拟析构函数
- c++对象模型-虚拟析构函数
- C++ 虚函数、多态、为什么需要虚拟析构函数
- 什么时候需要C++虚拟析构函数
- C++ 虚拟析构函数
- C++中析构函数为什么有时候写成虚拟的
- C++基础知识---构造函数 & 析构函数 & 虚拟析构函数
- C++多重继承,virtual虚拟继承解决多重继承中的二义性
- C\C++拾遗------C#程序员重温C\C++之要点
- C++中析构函数和构造函数
- 从零开始学C++之构造函数与析构函数(一):构造函数、析构函数、赋值与初始化、explicit关键字
- C++中构造函数和析构函数避免调用虚函数的问题