您的位置:首页 > 编程语言 > C语言/C++

c++基础之用new和delete申请内存与创建对象

2017-10-29 16:06 489 查看
malloc与free

注意:malloc申请而来的只是内存,严格地说并不是对象。

在c++中,用new/delete操作符取代malloc和free

申请一个对象:

int* p=new int;
释放
delete p;


注意:

1.new的返回值直接就是对象指针,不用再转换

2.new的时候可以设置初始值 new int(12);

申请多个对象:

例如:申请1024个int对象:

int* p=new int[1024];

释放:

delete[] p;

注意:

1.用[]指定对象个数;

2.如果new的时候用了[],则释放的时候也需要使用[]来释放;

使用原则与malloc/free类似,都是向内存管理器MM来申请内存。

1.用new申请的内存,必须用delete释放

2.用new[]申请的内存,必须用delete[]释放

3.用完之后,及时释放

注意:和free一样,delete之后指针所指向的内存不可再用

对于claas类型,必须用new/delete来创建,销毁。malloc/free无法胜任。

动态创建一个对象:

Circle* c=new Circle();//默认构造函数

Circle* c=new Circle;//不加括号也可以

Circle* c=new Circle(1,1,4);//传构造函数

释放对象:

delete c;

注意:new的时候构造函数被调用,delete的时候析构函数被调用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: