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

admin2013-02-27  28

问题 下面程序的运行结果是______。
   #include<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()<<endl;
      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/9pVp777K
0

最新回复(0)