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

admin2010-03-29  52

问题 下面程序的运行结果是【  】。
     #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 = O;
     int main()
    {
    cout<<count:: test()<<" ";
   count c1, c2;
   cout<<count:: test()<<endl;
   return 0;
   }   

选项

答案410

解析 本题主要考查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://jikaoti.com/ti/zEW0FFFM
0

最新回复(0)