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

admin2009-02-15  27

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

选项

答案3

解析 本题考核静态数据成员。本题程序中把变量s定义为静态数据成员,它被 MyClass类的所有对象所共享,但它不属于类的任何一个对象,它的作用域是类范围。在类MyClass的构造函数中,每创建一个对象,s就增1,由此可知s用来记录建立对象的个数。由于创建对象指针p时并不会调用构造函数,所以s最后的值是3。
转载请注明原文地址:https://kaotiyun.com/show/OOkp777K
0

最新回复(0)