使用VC++6.0打开考生文件廷下的源程序文件3.cpp。其中定义的类并不完整 按要求完成下
问题详情
使用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> classTCA { public: voidfun { cout$amp;请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:
(1)将“classTCB:”补充完整为“classTCB:virtualpub-licTCA”。
(2)将“classTCC:”补充完整为“classTCC:virtualpub-licTCA”。
(3)将“classTCD:”补充完整为“classTCD:publicTCB,publicTCC”。
(4)应添加“TCA::fun;TCB::fun;TCC::fun;”。
【解析】本题中第1处要求“完成类B虚继承于A”。在C++中,声明虚基类的一般形式为:class派生类名:virtual继承方式基类名,由题目知道TCA为基类,TCB为派生类,所以第1处的语句修改为“classTCB:virtualpublicTCA”。根据第2处和第3处的要求将标识2和3下的语句修改为“classTCC:virtualpublicTCA”和“ClaSSTCD:pub-licTCB,publicTCC”。第4处要求“函数fun通过调用基类的fun,完成所输出的内容”。在C++中调用基类的成员函数,要使用作用域限定符“::”,类名A::函数fun,就是调用类A的函数fun,根据题目中的要求补全对类TCA、TCB以及TCC中的fun函数,即“TCA::fun;TCB::fun;TCC::fun;”。