既然C里有malloc和free,为什么C++还需要new和delete呢?
2021/8/6 14:36:00
本文主要是介绍既然C里有malloc和free,为什么C++还需要new和delete呢?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
malloc与free是C、C++语言的标准库函数,new/delete是C++的运算符。他们都用于申请动态内存和释放内存。
对于非内部数据类型的对象而言(例如类对象),只用malloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,也就不能自动执行构造函数和析构函数。因此,不能将执行构造函数和析构函数的任务强加给malloc/free。所以,在c++中需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理和释放内存工作的运算符delete。
链接:https://leetcode-cn.com/circle/discuss/3xmp7u/
来源:力扣(LeetCode)
这篇关于既然C里有malloc和free,为什么C++还需要new和delete呢?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Rocket消息中间件教程:新手入门详解
- 2024-11-26RocketMQ项目开发教程:新手入门指南
- 2024-11-26MQ源码教程:轻松入门Apache MQ源码解析
- 2024-11-26Rocket消息队列教程:新手入门必读
- 2024-11-26Rocket消息队列教程:新手入门指南
- 2024-11-26RocketMQ底层原理教程:新手入门指南
- 2024-11-26RocketMQ底层原理教程:入门级详解
- 2024-11-26如何获取 OpenAI API Key 用于ChatGPT AI大模型开发?
- 2024-11-26MATLAB 中 A(7)=[];什么意思?-icode9专业技术文章分享
- 2024-11-26UniApp 中如何实现使用输入法时保持页面列表不动的效果?-icode9专业技术文章分享