问题 问答题

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

答案

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

单项选择题
单项选择题 A1/A2型题