问题 填空题

下列程序的输出结果是______。
#include<iostream>
using namespace std;
class Test
public:
Test()cnt++;
~Test()cnt--;
static int Count()return cnt;
private:
static int cnt;

int Test::cnt=0;
int main()

cout<<Test::Count()<<’’;
Test t1,t2;
Test *pT3=new Test;
Test *pT4=new Test;
eout<<Test::Count()<<’’;
delete pT4;
delete pT3;
cout<<Test::Count()<<endl;
return 0;

答案

参考答案:042

解析: C++中,提出静态成员的目的是为了解决数据共享的问题。一个给定类的每个对象都有类中定义的所有数据的自己的副本,如果在类中将数据成员用static说明为静态的,则这个类成员只有一个副本并被这个类的所有对象共享。类Test的静态成员cnt,初始值为0,所以执行语句cout<<Test::Count()<<;后输出0。然后程序创建了两个对象t1和t2,以及两个对象指针并调用new来初始化指针,所以cnt的值变成了4。然后程序将对象指针pT4、pT3删除了,此时将分别调用析构函数将cnt减1,所以最后输出cnt的值为2。

单项选择题 A型题
单项选择题