使用VC6打开考生文件夹下的工程test4_1,此工程包含一个源程序文件test4_1.cpp,但该程序在类的定义中存在问题,请改正类定义中的错误,使程序的输出结果如下: a=3 b=13 a=5 b=13 注意:请勿修改主函

admin2009-01-15  50

问题 使用VC6打开考生文件夹下的工程test4_1,此工程包含一个源程序文件test4_1.cpp,但该程序在类的定义中存在问题,请改正类定义中的错误,使程序的输出结果如下:
   a=3    b=13
   a=5    b=13
   注意:请勿修改主函数main中的任何内容。
   源程序文件rcst4_1.cpp清单如下:
   #include<iostream.h>
   class T
   {
   public:
   /*********found***+******/
   T(int x){a=x;  b+=x;)
   /+********found**********/
     void display(T c)
     { cout<<"a="<<c.a<<"\t"<<"b="<<c.b<<endl;)
   private:
     const int a;
     static int b;
   };
   /**********found*********/
   int b=5;
   void main()
   {
     T A(3),B(5);
     T::display(A);
     T::display(B);
   }

选项

答案(1)错误:T(int x){a=x;b+=x;) 正确:T(int x):a(x){b+=x;) (2)错误:void display(T c) 正确:static void display(T c) (3)错误:int b=5; 正确:int T::b=5;

解析 (1)主要考查考生对常量数据成员初始化方法的掌握,常量数据成员的初始化只能通过构造函数的成员初始化列表进行,常量数据成员使用关键字const修饰;
(2)主要考查考生对静态成员函数的理解,由主函数中的T::display(A)与T::display(B)可知display应定义为静态成员函数,因为调用类的静态成员必须使用作用域“::”符号;
(3)主要考查考生对静态数据成员初始化方法的掌握,由static int b可知b为静态成员数据,其初始化必须在类外使用作用域运算符(::)限定它所属的类。
转载请注明原文地址:https://kaotiyun.com/show/hKID777K
0

最新回复(0)