用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了多个类,其中定义的类并不完整,按照要求完成下列 操作,将类的定义补充完整;使其输出如下: TC2 TC3 TC1 (1)类TC2公共继承于TC1,请在注释1后

admin2013-11-15  37

问题 用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了多个类,其中定义的类并不完整,按照要求完成下列
操作,将类的定义补充完整;使其输出如下:
    TC2
    TC3
    TC1
    (1)类TC2公共继承于TC1,请在注释1后添加适当的语句。
    (2)print函数为虚函数,请在注释2后添加适当的语句。
    (3)修改语句,使得p指定对象obj3,请在注释3后添加适当的语句。
    (4)修改语句,利用p调用print函数,完成输出信息,在注释4后添加适当的语句。
    注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。
    试题程序:
#include(iostream)
using namespace std;
class TC1
{
public:
void print()
{
  cout<<"TC1"<}
};
//* * * * * * * * 1 * * * * * * * *
class TC2
{
public:
//* * * * * * * * 2 * * * * * * * *
void print()
{
  cout<<"TC2"< }
};
class TC3:public TC2
{
public:
void print()
{
  cout<<"TC3"< }
};
int main()
{
TC2 obj2;
TC3 obj3;
TC1*p;
obj2.print();
obj3.print();
//* * * * * * * * 3 * * * * * * * *
p:obj3;
//* * * * * * * * 4 * * * * * * * *
p.print();
return 0;
}

选项

答案(1)将“class TC2”补充完整为“class TC2:public TC1”。 (2)将“void print()补充完整为“virtual void print()”。 (3)将“p=obj3;”修改为“p=&obj3;”。 (4)将“p.print();”修改为“p->print();”。

解析 本题中第1处要求“类TC2公共继承于TC1”。从已有的类产生一个新的子类,成为类的派生。声明派生类的一般形式为“class派生类名:[继承方式]基类名”。根据题目中的要求以及派生类的.般形式,在第1处添加语句“class TC2:public TC1”。
    第2处要求“Print函数为虚函数”。在C++中,用virtual声明的函数为虚函数,因此第2处的语句应修改为“Virtual void print()”。
    第3处要求“使得P指定对象obj3”。p为指针变量,obj3为类的对象,将一个指针变量指向另一个变量,只要把被指向的变量的地址赋给指针变量即可。取对象obj3地址的语句为&obj3,所以这里补全语句为“p=&obj3;”。
    第4处要求“利用p调用print()函数”。C++中用“-”运算符实现成员访问,因此调用print函数,应将第4处的语句修改
转载请注明原文地址:https://kaotiyun.com/show/wHNp777K
0

最新回复(0)