应用题
1. 使用VC++6.0打开
考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。
(1)在类TC中定义name为字符串类型,age为int型,请在注释1之后添加语句。
(2)设置类TC0的基类为TC类的定义,请在注释2后添加语句。
(3)在类TC的派生类TC0的公有成员中定义析构函数TC0,请在注释3后添加语句。
(4)设置类TC1的基类为 TC类的定义,请在注释4后添加语句。
程序输出结果为:
TC class constructor
TC0 class constructor
TC on class constructor
TC1 class constructor
TC1class constructor
TC class constructor
TC0 class constructor
TC class constructor
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。
试题程序: #include<iostream.h>
class TC
{
//********1********
public:
TC() {cout << "TC class constructor" <<endl;}
~TC() {cout << "TC class constructor" << endl;}
};
//********2********
{
char *departmert;
int level;
public:
TC0()
{cout << "TC0 class constructor" << endl;}
//********3********
{cout << "TC0 class constructor" << endl;}
};
//********4********
{
char *major;
float salary;
public:
TC1() {cout << "TC1 class constructor" <<endl;}
~TC1() {cout << "TC1 class constructor" << endl;}
};
void main()
{
TC0 s1;
TC1 t1;
}
【正确答案】(1)应添加char *name; int age;
(2)应添加class TC0:public TC
(3)应添加~TC0 ()
(4)应添加class TC1:public TC
【答案解析】 本题第1处要求"TC中定义name为字符串类型,age为整型"。根据题目要求,在程序TC类中定义变量name和age,即"char *name; int age;"。第2处要求"设置类TC0的基类为TC类的定义"。在C++中,从已有的类产生一个新的子类,称为类的派生。声明派生类的一般形式为:class 派生类名:[继承方式] 基类名。根据声明派生类的一般形式,这里补全"class TC0:public TC"。第3处要求"在类TC的派生类TC0的公有成员中定义析构函数TC0"。析构函数也是一个特殊的成员函数,它的作用与构造函数相反,它的名称是在类名前面加一个"~"符号。题目中要求的类名称为"TC0"即这里补全"~TC0 ()"。第4处要求"设置类TC1的基类为 TC1类的定义",在第4处补充"class TC1:public TC"。