使用VC6打开考生文件夹下的源程序文件3.cpp,其中定义了类A、A1和A2,其中A1类由A类公有派生,A2类由A1类公有派生。 (1)定义类A的构造函数,该构造函数有一个整型的参数x,在构造函数中请将x赋值给数据成员a。请在注释“//******

admin2013-11-15  52

问题 使用VC6打开考生文件夹下的源程序文件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的构造函数,该构造函数有3个整型的参数x,y和z,在构造函数中请将x赋值给数据成员c,将y和z分别赋值给基类A1构造函数的参数x和y。请在注释“//********3********”之后添加适当的语句。
    (4)完成类A2的成员函数show的定义,该函数调用基类成员函数,输出基类书局成员a和b及类A2自身的数据成员c的值,上述3个值在输出时以空格隔开。请在注释“//********4********”之后添加适当的语句。
    注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
    程序输出结果如下:
    7
    3
7 3 8
注意:除在指定的位置添加语句之外,请不要改动程序的其他部分。
试题程序:
#include
class A
{
int a;
public:
//********1********
int geta(){return a;}
};
class A1:public A
{
int b;
public:
//********2********
int getb(){return b;}
};
class A2:public A1
{
int c;
public:
//********3********
void show(:)
{
//********4********
}
);
void main()
{
A2 a(8,3,7);
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<
解析 本题第1处要求定义类A的构造函数,该构造函数有一个整型的参数x,在构造函数中请将x赋值给数据成员a,构造函数没有返回值类型,所以应填“A(int x){a=x;)”。第2处第3处根据继承中对象的初始化语法规则可知。第4处要求调用基类成员函数,由于都是公有继承,geta()、getb()都是自身类的公有函数,所以根据继承规则,在对象A2中,依然是公有的可以通过对象A2直接调用。
转载请注明原文地址:https://jikaoti.com/ti/oSE0FFFM
0

最新回复(0)