学习 C++ 也有一段时间了,但是对于虚析构函数还是一知半解。到底在什么情况下应该使用析构函数,什么情况下又不要使用呢?请高手帮忙说明一下,最好能配合一些实例讲解一下。先谢过了。
解决方案 »
- 仿射变换参数求解
- 为什么动态创建CScrollBar没有显示出来?
- CTest继承CWnd,当DestroyWindow后,需不需要delete CTest?现在我一delete CTest就报错。
- C++的一个初级问题???
- 我急需一个类似浩方 QQ对战平台那样的底层通讯的模块 (能支持udp协议,tcp协议,ipx协议)-可付费,有的请Q我
- 在单文档程序下如何创建线程?
- 我要在OnMeasureItem中,对顶层菜单和子层菜单分别重绘大小,该如何实现?
- 编译通过,在构建时出现如下错误,是什么意思?
- 自信C++学得差不多,数据结构上的题也差不多全做了,下面该怎么办?
- 窗口透明的问题
- 下载了一些ATL做的COM组件源码,发现有些组件的接口,有.h和.idl两个文件,有的却只有.idl,这是怎么形成的?
- 寻求对话框打开和关闭的淡入淡出效果,谢谢!
...B pB = new A();delete B;//这里~B();尽量是虚拟的
...B pB = new A();delete B;//这里~B();尽量是虚拟的这段代码已经可以说明问题啦。
如果~B()不是虚拟的,程序就只会调用~B(),而不会去调用~A()
A pA = new A();
这样就没有问题啦,C++会自动按层次调用自己和基类的析构函数。