c++---对象的动态建立和释放



——————————————————————————————————————————————————————————


人生如白驹过隙,爱恨皆可成烟云,名利终将如粪土,唯有时光不可辜负。


——————————————————————————————————————————————————————————

一  new运算基础


软件的开发工程中,经常需要动态的分配和释放内存空间,在 c 语言中,我们用到 malloc和 free

在C++中提供了较为简单的运算符 new 和delete 。

new 运算符的例子

new int ; //  开辟一个存放整数的存储空间,返回一个指向该存储空间的地址
new int(100);
new int [3][6];  //开辟一个存放二维数组的存储空间,返回首元素的地址


new 运算符的格式: new 类型 [初值]

用new分配数组空间不能指定初值。如果内存不足等原因分配失败,则返回一个NULL指针。

delete 运算符格式:delete[ ] 指针变量

flaot *p = new float(3.14);
delete p;
new char[10];
delete[] pt;   //指针前面添加[],表示对数组空间操作

二.new运算符动态建立对象

//定义类 Box
Box *pt; //定义一个指向新对象的指针的值
pt = new Box; //在 pt 中存放了新建对象的起始地址
//在程序中就能访问这个地址
cout <<p->height; //输出对象的height成员
cout<<p->volume();//输出对象的成员函数


同时在执行new时候,还允许赋初值

Box* pt = new Box(12,12,12);

当new开辟空间失败的时候,则返回值是 0.

不需要使用new建立的对象的饿时候,可以用detele删除。

detele pt;  //释放 pt指向的内存空间

在指向detele运算符时,在释放内存之前,自动调用析构函数。


















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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值