有如下程序: #inc1ude<iostream> using namespace std; class Myclass{ public: Myclass() {++count;} ~Myclass(){一一

admin2019-05-06  56

问题 有如下程序:
    #inc1ude<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、121
B、232
C、221
D、122

答案A

解析 此题考查的是静态成员。静态成员的特性是不管这个类创建了多少对象,它的静态成员都只有一个拷贝副本,这个副本被所有属于这个类的对象共享。题目中,首先定义了obj对象,其构造函数使静态数据成员count增l,故输出“1”;然后通过指针动态创建了MyClass类的对象,构造函数被再次调用,count变为2,输出“2”;接着删除创建的MyClass类的对象,调用析构函数,count减1变为1,输出“1”。故最终输出结果是121。
转载请注明原文地址:https://kaotiyun.com/show/JE8p777K
0

最新回复(0)