单选题 有如下程序: #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<<obj.getCount(); MyClass*ptr=new MyClass; cout<<MyClass::getCount(); delete ptr; cout<<MyClass::getCount(); return 0; } 程序的输出结果是( )。
【正确答案】 A
【答案解析】解析:此题考查的是静态成员。静态成员的特性是不管这个类创建了多少对象,它的静态成员都只有一个拷贝副本,这个副本被所有属于这个类的对象共享。题目中,首先定义了obj对象,其构造函数使静态数据成员cout增1,故输出“1”;然后通过指针动态创建了Myclass类的对象,构造函数被再次调用,count变为2,输出“2”;接着删除创建的MyClass类的对象,调用析构函数,count减1变为1,输出“1”。故最终输出结果是121。