使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了类baseA、priAl和priA2,其中priAl类由baseA类公有派生,priA2类由priAl类公有派生。上述三个类的定义并不完整,请按要求完成下列操作,将程序补充完整。

admin2015-05-30  29

问题 使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了类baseA、priAl和priA2,其中priAl类由baseA类公有派生,priA2类由priAl类公有派生。上述三个类的定义并不完整,请按要求完成下列操作,将程序补充完整。
    程序输出结果如下:
    10
    5
    10 5 7
    (1)定义类baseA的构造函数,该构造函数有一个整型的参数m,在构造函数中请将m赋值给数据成员a。请在注释“//料料料料1料料料料”之后添加适当的语句。
    (2)定义类priAl的构造函数,该构造函数有两个整型的参数m和n,在构造函数中请将m赋值给数据成员b,将n作为基类baseA构造函数的参数值传入。请在注释“//********2********"之后添加适当的语句。
    (3)定义类priA2的构造函数,该构造函数有三个整型的参数m,n和k,在构造函数中请将m赋值给数据成员c,将n和k分别赋值给基类priAl构造函数的参数m和n。请在注释“//********3********之后添加适当的语句。
    (4)完成类priA2的成员函数show的定义,该函数调用基类成员函数,输出基类私有成员a和b及类priA2自身的数据成员C的值,上述三个值在输出时以空格隔开。请在注释“//********4********“之后添加适当的语句。
    注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
    1    #include
    2    class baSeA
    3    {
    4    int a ;
    5    public:
    6    //********1********
    7
    8    int geta(){return a ;)
    9    };
    10   class priAl:public baseA
    11  {
    12    int b ;
    13   public:
    14    //********2********
    15
    16    int getb(){return b ;)
    17  };
    18  class priA2:public priAl
    19  {
    20    int C;
    21   public:
    22    //********3********
    23
    24    void show()
    25    {
    26    //********4********
    27
    28     }
    29    } ;
    30    void main()
    31    {
    32   priA2 a(7,5,1 0);
    33    cout<    34    cout<    35    a.show();
    36  }

选项

答案(1)添加语句:baseA(int m){ a=m;) (2)添加语句:priAl(int m,int n):baseA(n){b=m;) (3)添加语句:priA2(int m,int n,int k):priAl(n,k){c=m;) (4)添加语句:cout<
解析 程序当中定义了类baseA、priAl和priA2,其中priAl类由baseA类公有派生,priA2类由priAl类公有派生。构造函数是类的一种特殊的成员函数,其函数名和类名一致。构造函数可以带参数也可以不带参数,带参数的构造函数根据构造函数内部赋值语句可知其参数形式。公有派生类可以访问基类的公有成员,因此priA2类可以调用类baseA的geta()函数和priAl类的getb0函数,通过调用这两个函数得到基类私有成员a和b。
    [解题思路]
    (1)根据题目l要示,构造函数函数名和类名一致,显然baseA构造函数名为baseAO,在baseAOOO通过参数m完成对成员变量a的赋值,因此构造函数名为baseA(int m),在函数内部对成员a赋值,故第1个标识下应添加“baseA(int m){a=m;)”。
    (2)根据题目2要示,构造函数形式为priAl(int m,int11),m赋值给priAl类成员b,将11作为基类baseA构造函数的参数值传入,故第2个标识下应添加“priAl(int m,intn):baseA(n){b=m;}”。
    (3)根据题目3要示,函数形式为priA2(int m,int n,intk),在构造函数中将m赋值给数据成员c,将n和k分别赋值给基类priAl构造函数的参数m和n,因此第3个标识下应添加“priA2(int m,int n,int k):priAl(n,k){c=m;)”。
    (4)根据题目4要示,priA2类公有派生于priA1,而priA1公有派生于baseA,因此在priA2类中可以调用基类的geta()和getb()来获得基类私有成员a和b,再输出priA2的私有成员C即满足要求,因此第4个标识下应添加“cout<
转载请注明原文地址:https://kaotiyun.com/show/qPNp777K
0

最新回复(0)