动态建立和释放
new操作符动态分配内存建立的变量,称为“堆对象”或者“在动态存储中分配”。
- new运算符创建的堆对象一直存在,直到使用delete运算符显示的销毁。
- new运算符返回一个与new所分配对象类型相匹配的指针;如果new运算符不能分配到所需要的内存,将返回0,这时为空指针。
示例: int *p1 = new int(5);
动态创建数组
示例:int *p2 = new int[5];
销毁堆对象
销毁堆对象
delete <指针名>
示例:delete p1;
销毁动态创建的数组
delete [] <指针名>
示例:delete [] p2;
注意:delete运算符后面的中括号中不能写任何数据。
对象的动态建立与释放
new运算符可以动态创建对象。动态创建的对象必须用delete运算符释放。
注意:
1.使用new运算符创建对象时,它可以根据其参数来选择适当的构造函数。
2.使用new创建对象数组时,不能为该数组指定初始值,其初始值为缺省值。所以,使用new创建对象数组时,类中必须说明缺省构造函数。