求大神帮解释一下 刚刚学c++
求大神帮解释一下 刚学c++
#include<iostream.h>
class point
{
public:
static int number;
point(){number++;}
~point(){number--;}
};
int point::number=0;
void main()
{ point *ptr;
point a,b;
{ point *ptr_point=new point[3];
ptr=ptr_point;
}
point c;
cout<<point::number<<endl;
delete []ptr;
}
为什么最后结果是6
------解决思路----------------------
在构造函数调用和析构函数调用时,就有number的值发生变化。
所以是6
#include<iostream.h>
class point
{
public:
static int number;
point(){number++;}
~point(){number--;}
};
int point::number=0;
void main()
{ point *ptr;
point a,b;
{ point *ptr_point=new point[3];
ptr=ptr_point;
}
point c;
cout<<point::number<<endl;
delete []ptr;
}
为什么最后结果是6
------解决思路----------------------
在构造函数调用和析构函数调用时,就有number的值发生变化。
point a, b;//+2
point *ptr_point = new point[3]; //+3
point c; //+1
所以是6