c++有关构造函数,析构函数的问题

c++有关构造函数,析构函数的问题,第1张

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 []运算符作用在哪个变量上,这个变量指向哪里是很容易找到的……

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/13496567.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存