——————————————————————————————————————————————————————————
人生如白驹过隙,爱恨皆可成烟云,名利终将如粪土,唯有时光不可辜负。
——————————————————————————————————————————————————————————
一 new运算基础
软件的开发工程中,经常需要动态的分配和释放内存空间,在 c 语言中,我们用到 malloc和 free
在C++中提供了较为简单的运算符 new 和delete 。
new 运算符的例子
new int ; // 开辟一个存放整数的存储空间,返回一个指向该存储空间的地址
new int(100);
new int [3][6]; //开辟一个存放二维数组的存储空间,返回首元素的地址
用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();//输出对象的成员函数
Box* pt = new Box(12,12,12);
当new开辟空间失败的时候,则返回值是 0.
不需要使用new建立的对象的饿时候,可以用detele删除。
detele pt; //释放 pt指向的内存空间
在指向detele运算符时,在释放内存之前,自动调用析构函数。