问题 问答题

改错题 使用VC6打开考生文件夹下的工程kt11_1,此工程包含一个源程序文件kt11_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为: Valuesare:1,2and3 Pressanykeytocontinue 源程序文件kt11_1.cpp清单如下: #include classCommonBase { public: intx; }; /*****************found*****************/ classDeriveCommonA::publicCommonBase { public: inty; }; classDeriveCommonB:publicCommonBase { public: intz; }; /*****************found*****************/ classOverlapping:publicDeriveCommonA;publicDeriveCommonB { public: voidDisplay() { cout<<"Valuesare:"<

答案

参考答案:

解析:(1)主要考查对派生类定义的理解,C++规定的继承格式是在类名的后面加冒号,之后是继承方式和继承类的名称,题目中错误的使用了作用域运算符; (2)主要考查多继承的定义,多继承的格式基本上和单继承相同,不过在多个基类之间应该使用逗号分开,题目中错误的使用了分号,分号在C++中是结束标志; (3)主要考查对派生类的对象访问的掌握,x是类CommonBase的成员,如果不加限制的访问就会产生二义性,编译程序不知道这个x是A类的,还是B类的,所以必须使用作用域限制符“::”,为了解决这个问题可以使用虚基类。

单项选择题 A1型题
材料分析题