对C++中new的一点看法

本文探讨了C++中的new操作符,解释了它如何动态分配内存,并且与C语言中的malloc等函数进行对比。new操作符分为两步:内存分配和对象构造。对于类类型对象,new首先调用malloc等函数申请内存,然后调用构造函数初始化。C++允许重载new以自定义内存分配方式。此外,还介绍了placement new,它用于在已分配的内存上初始化对象,实际上只是new的一种重载形式,不涉及额外的内存分配步骤。
摘要由CSDN通过智能技术生成

C语言中,动态获取内存空间一般是通过运行时库的malloccalloc,相应的释放函数为free,除此以外,还可以直接使用Win32APIGlobalAlloc/LocalAlloc)。在C++中,增加了一个新的内存分配操作符new,用户可以根据自己的需要实现动态内存申请,它的作用仅此而已。对于调用指定的类构造函数初始化内存,通过对代码的跟踪,你会发现那是在new调用之后,跳出操作符的控制范围后发生的,和new没有任何关系,那只是编译器在编译时自动添加的代码,给人的感觉它们好像是一体的。

如果创建一个类类型的对象,通常的形式是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值