问题 填空题

使用VC6打开考生文件夹下的工程test24_1,此工程包含一个源程序文件test24_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果为: 000 1 2-1 000 l 2-l 2 1 1 源程序文件 test24_1.cpp 清单如下: #include<iostream.h> class A { /****************found*******************/int a=O; public:A(int aa=O):a(aa){} }; class B {int a,b;const int c;A d; public: /****************found*******************/B(){} /****************found*******************/B (int aa, int bb): d(aa+bb){a=aa, b=bb;}void print(){cout<<a<<" "<<b<<" "<<c<<" "<<endl;} }; void main ( ) {B a,b(1,2);B x=a,y(b),z(2,1);a.print();b.print();x.print();y.print();z.print(); }

答案

参考答案:

解析:(1)错误:int a=0; 正确:int a; (2)错误;B(){} 正确:B():c(O){a=0;b=0;} (3)错误:B(int aa,int bb):d(aa+bb) 正确:B(int aa,int bb):c(aa-bb),d(aa+bb) (1)主要考查考生对于类的数据成员的初始化,在类的定义中不能对类的数据成员进行初始化,如果想要进行初始化应该使用构造函数和参数的默认值: (2)主要考查考生对于含有常数据成员的类的构造函数的掌握,常数据成员必须在构造函数中进行初始化,而且应该使用参数列表的形式; (3)主要考查考生在构造函数中对常数据成员的赋值的掌握,常数据成员的赋值应使用初始化列表进行。

单项选择题 A1型题
单项选择题