使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整,使其输出的结果为 TCA TCB TCC (1)完成类B虚继承于A,请在注释1后添加适当的语句。

admin2013-11-15  24

问题 使用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
class TCA
{
public:
void fun()
{
  cout<<"TCA"< }
};
//* * * * * * * * 1 * * * * * * * *
claSS TCB
{
  public:
  void fun()
  {
  cout<<"TCB"< }
};
//* * * * * * * * 2* * * * * * * *
class TCC
{
  public:
  void fun()
  {
  cout<<"TCC"< }
};
//* * * * * * * * 3 * * * * * * * *
class 1"CD
{
  public:
   void fun()
  {
    //* * * * * * * * 4 * * * * * * * *
  }
};
void main()
{
TCD test:
test.fun();
retUrn:
};

选项

答案(1)将“class TCB:”补充完整为“class TCB:virtual public TCA”。 (2)将“class TCC:”补充完整为“class TCC:virtual public TCA”。 (3)将“class TCD:”补充完整为“class TCD:public TCB,public TCC”。 (4)应添加“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():”。
转载请注明原文地址:https://kaotiyun.com/show/YHNp777K
0

最新回复(0)