虚析构函数解析


Ø       
C++ 指出:当一个派生类对象通使用一个基针删除,而个基有一个非虚的析构函数,则结果是未定的。运行有代表性的后果是象的派生部分不会被销毁。如果一个要被另外一个类继承,而且用其指指向其子类对,如A* d = new B();(假定A是基B是从A承而来的派生),那(A)析构函数必是虚的,否delete dB的析构函数将不会被用,因而会生内存泄漏和异常;

Ø       构造函数工作方式:在构造一个,先构造其基象,即用其基的构造函数,然后用本的构造函数;

Ø       析构函数的工作方式是:最底层的派生类(most derived class)的析构函数最先被调用,然后调用每一个基类的析构函数。

分析以下实例:

虚析构函数实例

 

 

     如果ClassB中不是虚析构函数,类B的对象pB在Delete时只能调用B的析构函数。当ClassB中是虚析构函数时。分析如下:

虚析构函数 实例分析

结论:

Ø        带有多态性质基类,应该声明一个virtual析构函数。如果类中有任何虚函数,那么就应该将该类的析构函数定义成虚函数。

Ø         如果类的设计不是为了作为基类来使用,或者不是为了具备多态,就不应该声明虚析构函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】wifi的几种工作模式

转自:https://www.cnblogs.com/Ph-one/p/12455362.html https://www.cnblogs.com/jpzhu/p/11983992.html WIFI配置具体的模式主要有以下这几种:STA模式、AccessPoint模式、Monitor模式、Ad-hoc(IBSS)模式、WDS模式、Mesh模式。 …

【转】WIFI-Direct(Wifi直连)、AirPlay、DLAN、Miracast功能介绍

转自:https://www.cnblogs.com/yuanqiangfei/p/11674640.html 不知道大家对无线同屏技术有多少了解,当这种技术普及的时候,我想我们的工作与生活又会方便很多吧!下面是目前三种主流同屏技术的介绍: 目前这种将终端信…

[轉]C# 中的委托和事件

轉自:http://www.cnblogs.com/jimmyzhang/archive/2007/09/23/903360.htmlpdf:http://www.tracefact.net/Document/Delegates-and-Events-in-CSharp.pdfC# 中的委托和事件 引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件…

【转】解决MeasureString 不准确的问题

转自:https://www.cnblogs.com/MRRAOBX/articles/7473803.html 我在将字符串(含中文)Draw到一幅图片上时发现不准这个问题的。 比如一幅图片的宽是400pixel,Graphics对象g的GraphicUnit是Pixel,我要画到图上的字符串是str,我用g.MeasureString(str.Sub…

专家观点:你必须了解的嵌入式Linux特性

如今,Linux正广泛应用于各种 嵌入式设备 的开发中,如数字电视、视讯转换盒、DVR播放器、xDSL/有线/PON调制解调器、家用路由器和 网络 网关。它尤其适合具有先进网络功能、大量设备驱动程序的数字家庭和家庭网络。除了嵌入式设备,Linux还支持…

【转】小谈PNG转SVG的方法 在线转换网站与illustrator

转自:https://www.aspirantzhang.com/network/png_to_svg.html 本文主要探讨JPG/PNG转SVG矢量格式并支持FILL的方法,介绍在线转换网站和通过illustator转换的经验。 应该说,国内网站很少用到SVG格式,在此之前我只是听过&#xf…

【转】最为详尽的WPF类继承关系*!

转自:最为详尽的WPF类继承关系 - 挑战 - 博客园

【转】Ubuntu16.04安装 Matlab2018a详细教程

转自:【Ubuntu】安装 Matlab2018a详细教程_My Blogs-CSDN博客_matlab2018a安装教程 Matlab2018a安装包下载: 链接: 百度网盘 请输入提取码 提取码: 3c75 一. 安装前的准备工作 1. 将下载好的文件R2018a_glnxa64_dvd1.iso, R2018a_glnxa64_dvd2.iso, …

【转】matlab与C/C++混合编程——在Windows/Linux上调用Matlab编译的动态库文件

转自:matlab与C/C混合编程——在Windows/Linux上调用Matlab编译的动态库文件_sinat_18131557的博客-CSDN博客 dateversioncomments2019/9/9V0.1Init2019/9/27V0.2添加报错信息写入log的实现文章目录 MATLAB生成Dll文件调用 生成dll文件调用dll文件MATLAB生成.so文件…

WinCE中的RAM-Based Registry与HIVE-Based Registry

WinCE支持两种类型注册表:RAM-BasedHIVE-Based,默认使RAM-Based注册表。 1.RAM-Based注册表 RAM-Based注册表所有注册表数据存储象存储(object store),就存放RAM里面。般有电池备份RAM系统面,就说,当系统掉电以&#…

【转】Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现

转自:Linux下c调用自己编写的matlab函数:通过mcc动态链接库.so实现_Jaster_wisdom的专栏-CSDN博客 之前在这里和这里调用了matlab自带的一些函数,是通过matlab引擎来实现的。那里调用的是matlab自带的函数,那么如果想调用自己写的…

【转】gcc/g++ 链接库的编译与链接

转自:gcc/g 链接库的编译与链接_Surge-CSDN博客_g 链接 gcc/g 链接库的编译与链接 surgewonggmail.com Surge_surgewong_CSDN博客 程序编译一般需要经预处理、编译、汇编和链接几个步骤。在实际应用中,有些公共代码需要反复使用,就把这些代…

常用WebServices返回数据的4种方法比较

以前经常在群里听到朋友们说WebServices的性能特别的慢,说的如何如何。说实话,WebServices的确比调用本地数据要慢一些,可是究竟有多慢,真的如朋友们说的那么难以忍受吗?我个人感觉,多半原因在处理的方式上…

【转】vscode下编译告警“undefined reference”?三步教你如何解决

转自:vscode下编译告警“undefined reference”?三步教你如何解决_squall0984的博客-CSDN博客 近些年来,由于VS Studio体积庞大、价格昂贵等原因,越来越多的C/C开发者转投VSCode的怀抱。VSCode有着免费1、开源2、多平台支持、占…

【转】vscode配置C/C++环境

转自:vscode配置C/C环境 - 知乎 VS Code配置作者:谭九鼎 链接:Visual Studio Code 如何编写运行 C、C 程序? - 知乎 有改动。个人按照步骤后,做到复制上三个json那一步,就可以运行了。 我将settings.json…

【转】dicom网络通讯入门(1)

转自:dicom网络通讯入门(1) - assassinx - 博客园 如果只看标准就会越看越糊涂,根本原因就是因为dicom抽象得太严重,是“专家”弄的。没办法。 那么到底服务类是什么?sop 又是什么?&#xff0…

用WebORB实现flex + .net后台的Remoting

实现flex与后台通信最简单的方式是采用httpServic的方式,或webservice。但这两种方式都是基于文本的传输,传输效率低,采用RemoteObject的方式,传输的内容采用AMF3格式的二进制编码,效率较高,并且能实现远程…

【转】dicom网络通讯入门(2)

转自:dicom网络通讯入门(2) - assassinx - 博客园 首先我们现一个echo响应测试工具,也就是echo 的scu,不是实现打印作业管理么。同学我告诉你还早着呢。本来标题取的就是《dicomviewer 第二弹 之 实现打印管理》名字多…

基于WINCE6.0下载multiple XIP镜像文件

备注:基于usb下载的方式,MLC nand flash为K9G8G08U 1. Multiple XIP模式的文件说明 Multiple XIP模式下生成的文件有chain.bin、chain.lst、NK.bin、xip.bin和xipkernel.bin,如下图所示: 图1 2. Eboot下载Multiple XI…

Final Michael Scofield

转载于:https://www.cnblogs.com/andrewx/archive/2009/08/16/1547738.html