关于C++问题,下面的程序输出结果为0,我想问一下问什么不是3,析构函数不是要在主函数之后才运行吗

2025-03-15 05:34:46
推荐回答(2个)
回答1:

首先 n被赋值为1 调用构造函数的时候+2 于是n=3 析构函数的时候-3
所以main 函数输出的是0
static 是静态,就是说,就算你没有建立对象,这个n 还是存在的。
水平有限,不知是否解释清楚了

回答2:

int test::n=1;
int main()
{
test *p=new test;//调用构造函数 n=1+2=3
delete p;//调用析构函数n=3-3=0
cout<<"n="< return 0;
}

至于说static有什么作用,static成员变量在程序中只存在一份,在类的实例创建之前就存在,类的实例销毁之后也依然存在。