、
有如下程序:
#include
using namespace std;
class Obj{
static int i;
public:
Obj(){i++;}
~Obj(){i–;}
static int getValue(){return i;}
};
int Obj::i = 0;
void f()
{
Obj ob2;
cout << ob2.getValue();
}
int main()
{
Obj ob1;
f();
Obj *ob3 = new Obj;
cout << ob3->getValue();
delete ob3;
cout << Obj::getValue();
return 0;
}
输出结果为221
解释:这个ob3,是先定义指针,再给指针分配空间,会调用构造函数,在delete的时候,这个对象被删除,会调用析构函数;