求大神帮解释一下 刚刚学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的值发生变化。

point a, b;//+2
 point *ptr_point = new point[3]; //+3
point c; //+1

所以是6