New和Delete
我们在C语言中使用动态开辟内存和释放内存时,往往会使用malloc,realloc,free等关键字,而在C++中,我们有了更简便的方法——使用new和delete
New
这是我们在使用malloc经常会写出的代码,但是在C++中,我们可以将代码简洁很多
![](https://img-blog.csdnimg.cn/cba801107467423a9b33aa258155b3c4.png)
在实现与malloc相同功能时,我们如果改为使用new,其简洁性和可读性都会强很多
New的使用方法
一般来说,new有以下四种常见的使用方法
1.直接开辟单个类型空间
2.开辟单个类型空间并赋值
3.开辟一段数组空间
4.开辟一段数组空间并赋值
Delete的使用方法
1.释放单个空间
2.释放数组空间
new和delete的意义
我们在C语言里就已经有malloc和free了,为什么还需要诞生new和delete呢?难道真的是因为为了使代码更简洁吗?
当然不是。我们在类与对象中已经学到,当我们实例化一个对象时,会调用对象的构造函数;而在销毁一个对象时,会调用对象的析构函数
但是,如果我们使用malloc和free来生成对象,编译器不会默认调用构造函数和析构函数
所以,new和delete产生的意义便是,在创建和销毁对象时会去调用构造函数和析构函数