有以下程序: #include<iostream> using namespace std; class MyClass { public: MyClass(); ~MyClass(); v

admin2010-03-29  24

问题 有以下程序:    #include<iostream>    using namespace std;    class MyClass    {    public:       MyClass();       ~MyClass();       void SetValue(int val);    private:       static int i;    };    int MyClass::i=0;    MyClass::MyClass()    {       i++;       cout<<i;    }    MyClass::~MyClass()    {       i--;       cout<<i;    }    void MyClass::SetValue(int val)    {       i=val;    }    int main()    {       MyClass*my[2];       int k;       for(k=0;k<2;k++)          my[k]=new MyClass;       for(k=0;k<2;k++)          delete my[k];       return 0;    }    运行后的输出结果是(    )。

选项 A、1210
B、1100
C、1234
D、输出结果不确定

答案1

解析 类MyClass中变量i是静态数据成员,它被MyClass类的所有对象共享,但它不属于任何一个对象,它的作用域是类范围。程序i是用来统计类MyClass所创建对象的个数,每创建一个对象i加1,每删除MyClass类对象i减1。
转载请注明原文地址:https://jikaoti.com/ti/AmW0FFFM
0

最新回复(0)