有了malloc/free为什么还要new/delete

coolria 2011-05-22 11:23:13
高质量C++里的解答没看懂
对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求?为什么不能满足呢
...全文
137 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaotine_wu 2011-05-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hnuqinhuan 的回复:]

new和delete可以调用对象的构造函数和析构函数
[/Quote]
++
就想叫yoko 2011-05-22
  • 打赏
  • 举报
回复
+1[Quote=引用 2 楼 hnuqinhuan 的回复:]

new和delete可以调用对象的构造函数和析构函数
[/Quote]
ryfdizuo 2011-05-22
  • 打赏
  • 举报
回复
动态创建对象有两个层次:
1,申请内存空间,
2,调用对象的构造函数。

对应的动态对象析构:
1,调用对象的析构函数。
2,释放内存空间。

malloc和free只停留在第一个层次。你的明白?
無_1024 2011-05-22
  • 打赏
  • 举报
回复
new和delete可以调用对象的构造函数和析构函数
ljt3969636 2011-05-22
  • 打赏
  • 举报
回复
因为maloc只负责申请内存free只负责释放内存
而创建对象需要在申请的内存上调用构造函数,这个功能new会提供

new及分配内存有调用构造函数
delete既调用析构函数又释放内存

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧