下面程序的运行结果是【 】。 #inChlde<iOStream> using namespace std; class count { static int n; public: count()

admin2009-02-15  54

问题 下面程序的运行结果是【  】。
   #inChlde<iOStream>
   using namespace std;
   class count
   {
     static int n;
   public:
     count()
     {
     n++;
     }
     static int test()
     {
       for(int i=0:i<4;i++)
          n++;
         return n;
     }
   };
   int count::n=0;
   int main()
   {
     cout<<COUnt::test()<<" ";
        count c1, c2;
       cout<<count::test()<<end1;
       return 0;
    }

选项

答案4 10

解析 本题主要考查C++类中静态数据成员的使用。题目程序首先定义了类count,其内部含有private类型数据成员static int n;同时含有public类型构造函数count()和静态成员函数static int test(),这两个函数的功能分别是为对象申请系统资源并将静态数据成员n加1和将静态数据成员n加4。主函数前,程序将静态数据成员n初始化为0,该数据成员为所有类count的对象所共有的数据成员:主函数中程序首先执行静态成员函数test()(由于test声明为static,因此其调用时无需通过具体对象),其执行过程中,静态数据成员n应该加4变成n=4,因此此处输出为4:此后程序创建对象c1和c2,由于在每次创建过程中都要调用构造函数count(),而每次调用 count()函数后,静态数据成员n值都会加1因此,创建两个对象之后,n值变为n= 6:再次执行test()函数后,n的值再次加4,因此变为n=6+4=10。故程序全部执行后,变量n值变为10,而中间程序输出为“410”。
转载请注明原文地址:https://kaotiyun.com/show/Kzjp777K
0

最新回复(0)