虚函数(C++)
来源:互联网 发布:百度云同步盘官网 mac 编辑:程序博客网 时间:2024/04/29 19:01
析构函数设置成虚函数正是体现了C++的多态性。当基类的指针指向子类时,析构的时候,如果析构函数不是虚函数的话,这样只会调用基类的析构函数。子类则不会被析构,这样就造成了内存泄露。如果定义成虚函数,那么则会先找到子类的析构函数,析构之后,再调用基类的析构函数。有些人设成虚函数是为了触发基类的析构函数,我觉得理解的不是太彻底,应该是虚函数只是为了找到子类的析构函数,而触发基类的析构函数是由子类时继承了基类才自然的就会调用基类的析构函数。
虚函数的实现。
class base{ public:base() { cout<<"base consttruction"<<endl; } virtual print() { cout<<"base print"<<endl; }};class child : public base{ public:child() { cout<<"child contruction"<<endl; } virtual print() { cout<<"child print"<<endl; }};void main(){ base m_b; child m_c; base * pb = &m_b;pb->print(); pb = &m_c;pb->print();}
运行的结果:
base consttruction 父类对象构造
base consttruction 先调用父类构造函数
child contruction 再调用子类构造寒素
base print 虚函数的多态性
child print
Press any key to continue
- C/C++--虚函数
- 【C/C++】纯虚函数
- C/C++, 虚函数表
- C++:虚函数用途
- 虚函数详解(C++)
- 虚函数(C++)
- c++-->虚函数 2
- C++ 虚函数
- C++:虚函数
- C++_虚函数
- 【c++】虚函数
- 【C++】虚函数
- C++ 虚函数
- [C++]虚函数
- 虚函数 假多态 C++
- C/C++ 虚函数
- C++:虚函数理解
- C++---虚函数
- 让你彻悟人生的555句金玉良言
- python之在序列中寻找不同的元素
- "dictionary.columns"的典型运用
- JavaScript 根据数组中对象的属性排序
- ubuntu 64位 jdk 安装 配置
- 虚函数(C++)
- 一个有用的关于sharepoint的博客
- js弹出层与遮罩层
- android selector动态改变imageView或ImageViewButton
- mapreduce OSDI04
- C#获取文件夹下所有文件
- 信号量函数(semget、semop、semctl)及其范例
- HTML5渐变
- JSF与Struts2的瑜亮之争