三、综合应用题
使用VC6打开考生文件夹下的工程kt15_3。此工程包含一个kt15_3.cpp,其中定义了
类A、A1和A2,其中A1类由A类公有派生,A2类由A1类公有派生。上述三个类的定义并不完整,请按要求完成下列操作,将程序补充完整。
(1)定义类A的构造函数,该构造函数有一个整型的参数x,在构造函数中请将x赋值给数据成员a。请在注释“//**1**”之后添加适当的语句。
(2)定义类A1的构造函数,该构造函数有两个整型参数x和y,在构造函数中请将x赋值给数据成员b,将y作为基类A构造函数的参数值传入。请在注释“//**2**”后添加适当的语句。
(3)定义类A2的构造函数,该构造函数有三个整型的参数x,y和z,在构造函数中请将x赋值给数据成员c,将y和z分别赋值给基类A1构造函数的参数x和y。请在注释“//**3**”之后添加适当的语句。
(4)完成类A2的成员函数show的定义,该函数调用基类成员函数,输出基类数据成员a和b及类A2自身的数据成员c的值,上述三个值在输出时以空格隔开。请在注释“//**4**”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
程序输出结果如下:
9
6
962
源程序文件kt15_3.cpp清单如下:
#include
classA
{ inta;
public:
//**1**
intgeta(){returna;} };
classA1:publicA
{ intb;
public:
//**2**
intgetb(){returnb;} };
classA2:publicA1
{ intc;
public:
//**3**
voidshow()
{ //**4** } };
voidmain()
{ A2a(2,6,9);
cout< cout< a.show(); } 【参考答案】 (1)A(int x) {a=x;} (2)A1(int x,int y) : A(y){b=x;} (3)A2(int x,int y,int z):A1(y,z){c=x;} (4)cout< 【试题解析】 本题主要考查对继承和派生的掌握程度,涉及派生类构造函数的定义、基类成员函数的访问等内容。派生类的构造函数的格式请牢记,另外派生类构造函数及析构函数的执行顺序也是需要掌握的。 相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |