
Test p=new Test; //这里是建立一个对象,会调用默认构造函数,n +=2 ,此时 n =3
delete p; //这里删除对象,会调用析构函数, n -=3 ,此时n = 0
所以结果为0 。
观楼主英俊潇洒,风流倜傥,必当世豪杰,大侠闲暇之余,关注0x30百度贴吧,
必成千秋霸业,不世之功。
int create2DArray(int d1, int d2) {
int array = new int[d1];
while (0 <= --d1) array[d1] = new int[d2];
return array;
}
void destory2DArray(int array, int row) { // 需要传入行数才能做
while (0 <= --row) delete[] array[row];
delete[] array;
}
PS:二维数组建议用一维数组来代替,取(Row,Col)的值,即获取一维数组下标Row M + Col的单元(M是行数)
messfun是值传递的,g作为参数传递的时候是复制给messfun函数的 f 参数,所有成员(实际上也只有一个指针成员)复制给这个参数,当messfun函数返回的时候,f 的生命期结束,调用析构函数,执行delete []f;。然后main函数返回,g的生命期结束,这个时候delete []运算符作用在哪个变量上,这个变量指向哪里是很容易找到的……
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)