首先 n被赋值为1 调用构造函数的时候+2 于是n=3 析构函数的时候-3
所以main 函数输出的是0
static 是静态,就是说,就算你没有建立对象,这个n 还是存在的。
水平有限,不知是否解释清楚了
int test::n=1;
int main()
{
test *p=new test;//调用构造函数 n=1+2=3
delete p;//调用析构函数n=3-3=0
cout<<"n="<
}
至于说static有什么作用,static成员变量在程序中只存在一份,在类的实例创建之前就存在,类的实例销毁之后也依然存在。