网易首页 > 网易号 > 正文 申请入驻

程序设计实习:3.3析构函数

0
分享至

析构函数 (Destructor) 成员函数的一种

名字与类名相同

在前面加 ‘~’

没有参数和返回值

一个类最多只有一个析构函数

对象消亡时 自动被调用

在对象消亡前做善后工作

释放分配的空间等 定义类时没写析构函数, 则编译器生成缺省析构函数

不涉及释放用户申请的内存释放等清理工作 定义了析构函数, 则编译器不生成缺省析构函数

class String{ private : char * p; public: String () { p = new char[10]; } ~ String (); }; String ::~ String() { delete [] p; }

析构函数和数组

对象数组生命期结束时

对象数组的每个元素的析构函数都会被调用

class Ctest { public: ~Ctest() { cout<< "destructor called" << endl; } }; int main () { Ctest array[2]; cout << "End Main" << endl; return 0; }

析构函数和运算符 delete delete 运算导致析构函数调用 Ctest * pTest; pTest = new Ctest; //构造函数调用 delete pTest; //析构函数调用 ------------------------------------------------------------------ pTest = new Ctest[3]; //构造函数调用3次 delete [] pTest; //析构函数调用3次

构造函数和析构函数 调用时机的例题

class Demo { int id; public: Demo( int i ) { id = i; cout << “id=” << id << “ Constructed” << endl; } ~Demo() { cout << “id=” << id << “ Destructed” << endl; } };

Demo d1(1); void Func(){ static Demo d2(2); Demo d3(3); cout << “Func” << endl ; } int main (){ Demo d4(4); d4 = 6; cout << “main” << endl ; { Demo d5(5); } Func(); cout << “main ends” << endl ; return 0; } 9 输出 : id=1 Constructed id=4 Constructed id=6 Constructed id=6 Destructed main id=5 Constructed id=5 Destructed id=2 Constructed id=3 Constructed Func id=3 Destructed main ends id=6 Destructed id=2 Destructed id=1 Destructed

构造函数和析构函数在不同编译器中的表现 各别调用情况不一致

编译器有bug

代码优化措施 前面讨论的是C++标准

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
赖昌星案发后感叹:如果“二哥”没出事,谁也不敢动我!二哥是谁

赖昌星案发后感叹:如果“二哥”没出事,谁也不敢动我!二哥是谁

纸鸢奇谭
2023-08-20 10:03:04
森林北回应恋情:虽然汪峰很花心,但我超爱他,绝对没绿章子怡

森林北回应恋情:虽然汪峰很花心,但我超爱他,绝对没绿章子怡

叶公子
2024-05-22 00:31:41
伊朗已故总统莱希的遗体告别仪式在德黑兰举行

伊朗已故总统莱希的遗体告别仪式在德黑兰举行

国际在线
2024-05-22 23:52:15
森林北穿起球毛衣回应!网友:3分钟的视频,每一条都该抄下来

森林北穿起球毛衣回应!网友:3分钟的视频,每一条都该抄下来

圈里的甜橙子
2024-05-22 06:08:57
以色列已确定哈马斯领导人辛瓦尔的确切位置,投鼠忌器,不敢动他

以色列已确定哈马斯领导人辛瓦尔的确切位置,投鼠忌器,不敢动他

猪头荣呀
2024-05-22 13:28:35
中超积分榜,上海海港最后连进2球,直追申花,亚泰又在补时丢球

中超积分榜,上海海港最后连进2球,直追申花,亚泰又在补时丢球

第五才子
2024-05-22 23:46:01
上海海事局发布消息,福建舰将进行第二轮海试?美专家:落后70年

上海海事局发布消息,福建舰将进行第二轮海试?美专家:落后70年

娱乐为信
2024-05-22 10:41:15
白菜价就能签强力中锋?取代周琦第一人!广东男篮内线终于有救了

白菜价就能签强力中锋?取代周琦第一人!广东男篮内线终于有救了

绯雨儿
2024-05-22 12:50:37
郭艾伦赛季总结:躺赢第4冠+只打3场最惨一季 剩一年合同存变数

郭艾伦赛季总结:躺赢第4冠+只打3场最惨一季 剩一年合同存变数

醉卧浮生
2024-05-22 21:38:33
情杀?湖南一公园重大刑事案: 造成5人死伤! 现场更令人头皮发麻

情杀?湖南一公园重大刑事案: 造成5人死伤! 现场更令人头皮发麻

叹为观止易
2024-05-22 08:54:29
4月份的财政数据,透露出与统计数据有所不同的经济形势

4月份的财政数据,透露出与统计数据有所不同的经济形势

火星宏观
2024-05-22 06:00:02
今年夏天继续续约?郭艾伦:明年等我 辽宁总冠军

今年夏天继续续约?郭艾伦:明年等我 辽宁总冠军

直播吧
2024-05-22 23:52:07
大陆只给赖清德一个选择:战,那就不会放跑一个

大陆只给赖清德一个选择:战,那就不会放跑一个

夏天使娱乐
2024-05-22 15:19:38
中国也要提高关税了!

中国也要提高关税了!

楚楚的留香
2024-05-22 17:15:02
晚邮报:橡树资本将成国米所有者,除非苏宁反对否则董事会须辞职

晚邮报:橡树资本将成国米所有者,除非苏宁反对否则董事会须辞职

直播吧
2024-05-22 15:41:15
“中产阶级”的及格线出炉!全中国仅3320万户?只有四种家庭及格

“中产阶级”的及格线出炉!全中国仅3320万户?只有四种家庭及格

农村阿祖
2024-05-20 21:03:38
一点也不想呆在中国了,出国的人已经排得人山人海到底是什么原因

一点也不想呆在中国了,出国的人已经排得人山人海到底是什么原因

寻梦小真
2024-04-29 22:17:36
韩德君100场季后赛里程碑:总决赛4战63+34 37岁仍无需退役

韩德君100场季后赛里程碑:总决赛4战63+34 37岁仍无需退役

醉卧浮生
2024-05-22 22:00:03
34岁年轻妈妈520晒9个孩子,老公身份被扒,身价超340亿

34岁年轻妈妈520晒9个孩子,老公身份被扒,身价超340亿

180°视角
2024-05-21 10:44:35
一场2-0,让中超形势变天!3队退出争冠行列,申花队压力大了

一场2-0,让中超形势变天!3队退出争冠行列,申花队压力大了

何老师呀
2024-05-22 23:39:47
2024-05-23 00:40:49
爱你雅课
爱你雅课
科普知识,科教视频
213文章数 618关注度
往期回顾 全部

科技要闻

微软给用户更多理由回到 Windows

头条要闻

小学生跑200米中途倒地昏迷入院后离世 教育局回应

头条要闻

小学生跑200米中途倒地昏迷入院后离世 教育局回应

体育要闻

官方:橡树资本接管国米 8年苏宁时代结束

娱乐要闻

乔欣助理离职大爆料!涉及明星超10位

财经要闻

理想不再“理想”

汽车要闻

舒适价值拉满 奇瑞风云T9售12.99-16.99万元

态度原创

本地
房产
游戏
健康
军事航空

本地新闻

强制措施展铁腕 “交叉执行”勇亮剑

房产要闻

实地测评海口“豪装”安居房:这位置,这价格,把自己劝一下!

让男主给反派下跪,奇点时代520文案整了大活"/> 主站 商城 论坛 自运营 登录 注册 让男主给反派下跪,奇点时代520文案整了大活 子鲤 2024-...

在中国,到底哪些人在吃“伟哥”?

军事要闻

俄按计划进行核武演练 未明确后续是否将进行实弹试射

无障碍浏览 进入关怀版