社区
新手乐园
帖子详情
如果我显式定义了析构函数,但是不给出实现。就不行。为什么?如给个空的实现,那这个析构函数能不能真正把对象销毁?
soarhigh
2005-11-20 09:45:15
如果我显式定义了析构函数,但是不给出实现。就不行。为什么?
如果我给出个空的实现,那这个析构函数能不能真正把对象销毁?
谢谢!
...全文
100
2
打赏
收藏
如果我显式定义了析构函数,但是不给出实现。就不行。为什么?如给个空的实现,那这个析构函数能不能真正把对象销毁?
如果我显式定义了析构函数,但是不给出实现。就不行。为什么? 如果我给出个空的实现,那这个析构函数能不能真正把对象销毁? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaocai0001
2005-11-20
打赏
举报
回复
声明和实现是有区别的, 你如果不使用一个函数, 那么可以只给出声明而不需要实现部分.
但析构函数是肯定会被使用的, 没有实现的话, 链接就会出错.
hongtog
2005-11-20
打赏
举报
回复
定义了析构函数,要给出实现, 可以为空,
这样{},这个析构函数能将对象销毁,除非你是new出来的。
MT5智能交易编程实战59课精讲
MT5基本功能介绍、MetaEditor编辑器、基本数据类型、常量和变量、枚举类型、结构体、数组、算数运算符、关系运算符、逻辑运算符、条件判断、循环、函数、类的
定义
、类的成员变量和函数、类的构造函数、类的
析构函数
...
C++
显式
调用
析构函数
问题一二
C++
显式
调用
析构函数
问题描述具体分析:1.
析构函数
的作用2.调用
析构函数
的时机3.结论总结 问题描述 关于显示调用
析构函数
会不会对
对象
本身进行析构? 有两种结论: (1)会析构对本身; (2)不会析构
对象
本身,只是单纯调用
析构函数
; #include <iostream> class Log1 { public: int a; Log1():a(1) { std::cout...
深入探索C++
对象
模型(九)
析构函数
(以及
显式
定义
的
析构函数
问题、
析构函数
Rules of Three)
如果类没有
定义
析构函数
,那么只有类中含有成员
对象
(或者本类的基类)拥有
析构函数
的情况下,编译器才会合成一个出来,否则
析构函数
被视为不要,也就不需要合成。例如,如下类,虽然Point类拥有虚函数:[cpp] view plain copyclass Point { piblic: Point(float x = 0.0, float y = 0.0); Point (co...
【C++】
析构函数
详解
概念
析构函数
:与构造函数功能相反,
析构函数
是完成
对象
的
销毁
,局部
对象
销毁
工作是由编译器完成的。而
对象
在
销毁
时会自动调用
析构函数
,完成类的一些资源清理工作。 特性
析构函数
名是在类名前加上字符 ~ 无参数无返回值。 一个类有且只有一个
析构函数
。若用户没有
显式
定义
,系统会自动生成默认的
析构函数
。(不一定会,下面进行解答) 1、在下面这个类中,并没有显示
定义
析构函数
,但是编辑器不会生成默认的
析构函数
,因为在这个类中没有进行资源的管理,所以不需要
析构函数
。 class Date { Data(int yea
c++_基类
析构函数
为什么必须是虚函数
一句话来:防止子类内存泄漏 如果基类的
析构函数
不是虚函数的话,可能造成子类
析构函数
没有调用,从而导致内存泄漏。 什么情况下会出现呢?如下 Base b = new Child; delete b; 基类没有
析构函数
就啥事也没有~ 当然如果你不
显式
声明
析构函数
,或者说自己没有
实现
析构函数
时,就没有问题。 此时子类析构时将不调用父类
析构函数
。 这个结论请参考文章:【拒绝主观!】C++继承中父类的构造函数和
析构函数
调用情况 虚函数为什么能做到? 有虚函数的基类,编译器会自动为其创建一个虚函数表(
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章