问题 单项选择题

有如下程序:
#include<iostream>
using namespace std;
class MyClass
public:
MyClass()++count;
~MyClass()--count;
static int getCount()return count;
private:
static int count;

int MyClass::count=0;
int main()
MyClass obj;
Cout<<obi.getCount();
MyClass*ptr=new MyClass;
cout<(MyClass::getCount();
delete ptr;
cout<<MyClass::getCount();
return 0;

程序的输出结果是( )。

A.121

B.232

C.221

D.122

答案

参考答案:A

解析: 本题考查的知识点是静态成员。类中的静态成员是解决同—:个类的不同对象之间的数据和函数共享问题的。静态成员被所有属于这个类的对象共享。这种共享与全局变量或全局函数相比,既没有破坏数据隐藏的厚则,又保证了安全性。题目中,首先定义了一个obj对象,其构造函数使MyClass的静态数据成员count增1,所以第一条输出语句输出的结果是1。然后通过指针动态创建了一个MyClass类的对象,构造函数再次被调用,count变为2,所以第2次输出结果是2。接下来是用dilete删除了刚才动态创建的MyClass对象。析构函数被调用,count减1变为1,笫3次输出1。故本题的输出为121。

单项选择题 A1/A2型题
单项选择题