动态创建对象
1new与delete申请内存
new/delete
回顾malloc/free (第12章 动态分配内存)
注:malloc申请而来的只是内存,严格地说并不是“对象”
// 4个int , 16个字节
int* p = (int*) malloc(16);
for(int i=0; i<4; i++)
p[i] = i;
free§;
new/delete
在C++中,用new/delete操作符取代malloc/free
申请一个对象 :
int* p = new int;
释放
delete p;
注意:
(1)new的返回值直接就是对象指针,不用再转换
(2)new的时候可以设初始值 new int(12);
new/delete
申请多个对象 :
例如,申请1024个int对象:
int* p = new int [1024] ;
释放
delete [] p;
注意:
(1)用[]指定对象个数
(2)如果new的时候用了[],则释放的时候使用delete []操 作符
new/delete
申请一个int, 一个double
int* p1 = new int;
*p1 = 12;
delete p1; // 用完后释放
double p2 = new double(12.34);
printf("%f \n", *p2);
de