问题 填空题

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

问答题 简答题
单项选择题