社区
非技术区
帖子详情
请教各位高手:C++中为什么析构函数一般定义成虚函数啊?急!!!!
iter_zc
2004-11-04 10:42:12
各位高手,请帮小弟解决一个小问题吧!C++中为什么析构函数一般定义成虚函数啊?急!!!!
...全文
184
7
打赏
收藏
请教各位高手:C++中为什么析构函数一般定义成虚函数啊?急!!!!
各位高手,请帮小弟解决一个小问题吧!C++中为什么析构函数一般定义成虚函数啊?急!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
iter_zc
2004-11-05
打赏
举报
回复
谢谢各位了,小弟明白了
dudu妈
2004-11-05
打赏
举报
回复
因为一般c++类都要通过继承或者派生,怕有时忘记所以一般都定义成虚的!如果是个单独的类也不会出现问题,为了方便期间建议都用!
ice_bin
2004-11-05
打赏
举报
回复
说的各有道理```
Hmilzy
2004-11-05
打赏
举报
回复
个人见解:
派生类中一般都定义了新的对象或数据成员,如果仅仅调用基类的析构函数,那么,新申请的对象和数据就得不到回收,从而造成内存泄露.
所以,析构函数一般定义成虚函数~!让派生类实现自己的析构函数.
hchinside
2004-11-05
打赏
举报
回复
如果你的类位于继承体系中,作为父类,那就要把dtor声明为virtual,否则不用。
eg:
class B
{
virtual ~B() {}
}
class D : public B
{
virtual ~D() {}
}
B* p = new D();
delete p; // 虽然p是B类型,但是这里会调用~D,由~D内部调用~B
如果dtor不是virtual,那delete p只会直接调用~B
sjzxyg
2004-11-05
打赏
举报
回复
防止资源和内存泄露,否则你delete基类指针,则执行的是基类的析构,而不是实际的析构函数,所以需要继承的类的析构函数设计为虚函数
geland
2004-11-05
打赏
举报
回复
以便于派生出新类
C++
第3课:
C++
内存泄露检测原理及案例实战
C++
第3课:
C++
内存泄露检测原理及案例实战 本课程侧重于
C++
的内存管理及泄露检测。 我将带领大家学习OS的内存管理机制、
C++
的堆和栈、内存泄露及检测等。 本课程具体的内容主要包括
C++
内存泄露案例、VS2015内存泄露...
Item 7 (多态
中
基类的虚
析构函数
)Declare destructors virtual in polymorphic base classes
看评注版的书的确有点吃力,作为一个英语渣,很多单词都要
请教
谷歌... 先把书上最后的总结心得Mark下,再做虚
析构函数
进行讨论分析: Polymorphic base classes should declare virtual destructors. If a class ha
构造函数,
析构函数
子类生
成
对象时 是先调用父类的构造函数 再调用自己的构造函数 析构时的顺序是怎样的? 比如下面 #include using namespace std; class A{ public: A(){cout virtual void p(){cout ~A(){cout }...
C++
系列:
C++
对象模型
语言
中
直接支持面向对象程序设计的部分,如构造函数、
析构函数
、
虚函数
、继承(单继承、多继承、虚继承)、多态等等,这里我简单过一下,重点在底层实现机制。 在C语言
中
,“数据”和“处理数据的操作(函数)”是...
c++
虚函数
异步赠书:9月重磅新书升级,本本经典 SDCC 2017之区块链技术实战...
C++
虚函数
表解析 标签:
c++
funclass编译器语言iostream 2007-12-18 22:07 319789人阅读 评论(450) 收藏 举报 分类:
非技术区
15,440
社区成员
58,171
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章