问题 填空题

使用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为静态成员数据,其初始化必须在类外使用作用域运算符(::)限定它所属的类。

多项选择题
单项选择题