使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整,使其输出的结果为
TCA
TCB
TCC
(1)完成类B虚继承于A,请在注释1后添加适当的语句。
(2)完成类C虚继承于A,请在注释2后添加适当的语句。
(3)完成类D继承于B,C,请在注释3后添加适当的语句。
(4)函数fun通过调用基类的fun,完成所输出的内容,请在注释4后添加适当的语句。
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。
试题程序:
#include<iostream.h>
class TCA
public:
void fun()
cout<<"TCA"<<end1;
;
//********1********
class TCB
public:
void fun()
cout<<"TCB"<<end1;
;
//********2********
class TCC
public:
void fun()
cout<<"TCC"<<end1;
;
//********3********
class TCD
public:
void fun()
//********4********
;
void main()
TCD test;
test.fun();
return;
;
参考答案:应添加“TCA::fun();TCB::fun();TCC::fun();”。
解析: 本题中第1处要求“完成类B虚继承于A”。在C++中,声明虚基类的一般形式为:class派生类名:virtual继承方式基类名,由题目知道TCA为基类,TCB为派生类,所以第1处的语句修改为“class TCB:virtual public TCA”。根据第2处和第3处的要求将标识2和3下的语句修改为“class TCC:virtual public TCA”和“class TCD:public TCB,public TCC”。第4处要求“函数fun通过调用基类的fun,完成所输出的内容”。在C++中调用基类的成员函数,要使用作用域限定符“::”,类名A::函数fun,就是调用类A的函数fun,根据题目中的要求补全对类TCA、TCB以及TCC中的fun函数,即“TCA::fun();TCB::fun();TCC::fun();”。