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

admin2010-06-06  61

问题 有以下程序
   #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+1);
       p++;
     }
     cout<<MyClass::s<<endl;
     return 0;
   }
   运行后的输出结果是______。

选项

答案3

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

最新回复(0)