第十三周阅读程序2:虚析构函数
来源:互联网 发布:二级c语言考试系统 编辑:程序博客网 时间:2024/06/04 18:40
问题及代码:
#include <iostream>using namespace std;class BASE{private: char c;public: BASE(char n):c(n) {} virtual ~BASE() //虚析构函数 { cout<<c; }};class DERIVED:public BASE{private: char c;public: DERIVED(char n):BASE(n+1),c(n) {} //派生类数据成员赋值为n 基类数据成员设置为n+1 ~DERIVED() { cout<<c; }};int main(){ DERIVED d('X'); //通过构造函数,派生类数据成员c=X,基类数据成员c=Y return 0;}
运行结果:
知识点总结:
虚析构函数的声明 在基类析构函数钱加上 virtual
如果基类的析构函数不定义为虚析构函数,基类的指针在进行析构时,将不执行派生类的析构函数。所以在一个较好的项目中,基类的虚构函数都是定义为虚析构函数的。
当然,老师给的这个程序是建立的派生类的对象,没有涉及指针。所以即使去掉virtual也是可以执行派生类对象的虚构函数的。
0 0
- 第十三周 阅读程序 2 虚析构函数
- 第十三周阅读程序2:虚析构函数
- 第十三周阅读程序 虚析构函数
- 第十三周 程序阅读 (2)虚析构函数
- 第十三周阅读程序2
- 第十三周阅读程序2
- 第十三周 阅读程序 2
- 第十三周阅读程序2
- 第十三周项目一 阅读程序请写出这些程序的运行结果(2 虚析构函数)
- 第十三周 阅读程序 1 虚函数
- 第十三周阅读程序1:虚函数
- 第十三周阅读程序 虚函数
- 第十三周阅读程序 纯虚函数
- 第十三周阅读程序 交通类纯虚函数
- 第十三周项目1:阅读程序,并写出运行结果(2)虚析构函数
- 第十三周 程序阅读
- 第十三周 阅读程序
- 第十三周程序阅读
- OPENCART 2.X 自适应主题模板 ABC-0629
- VMware虚拟机中CentOS/redhat设置固定IP
- 我也曾盼望有一个人,将我好好收藏,妥善安放,免我苦,免我惊,免我四下流离,免我无枝可依
- Live Archive 3902 Network 【持续更新】
- Python 的 time模块
- 第十三周阅读程序2:虚析构函数
- java中long和Long的区别
- 我不能做到你想要的我,但我能做最好的自己
- DP两道hdoj关于序列的水题hdoj1087,1159
- 凸包模板
- CSAPP 深入理解计算机系统 Buflab实验,缓冲区溢出攻击实验(2)
- spingMVC之国际化
- 血色西晋读书杂记
- 安卓学习笔记