请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,其中在编辑窗口内显示的主程序文件中定义有类Base和Derived,以及主函数main。程序文本中位于每行“//****found****”下面的一行内有一处或多处下画线标记,请在每

admin2021-05-06  22

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,其中在编辑窗口内显示的主程序文件中定义有类Base和Derived,以及主函数main。程序文本中位于每行“//****found****”下面的一行内有一处或多处下画线标记,请在每个下画线标记处填写合适的内容.并删除下画线标记。经修改后运行程序,得到的输出应为:
    sum=55。
    注意:只在横线处填写适当的代码,不要改动程序中的其他内容。
1  #include
2  using namespace std;
3  class Base
4    {
5   public:
6    Base(int m1,int m2){
7    mem1=m1;mem2=m2;
8    }
9    int sum(){return meml+mem2;)
10 private:
11    int meml,mem2;//基类的数据成员
12    };
13
14  //派生类Derived从基类Base公有继承
15    //**********found**********
16  class Derived:
17    {
18   public:
19    //构造函数声明
20   Derived(int m1,int m2,int m3);
21    //sum函数定义,要求返回mem1、mem2和mem3之和
22    //**********found**********
23   int sum(){return______+mem3;}private:
24    int mem3;//派生类本身的数据成员
25    };
26
27  //构造函数的类外定义,要求由m1和m2分别初始化mem1和mem2.由m3初始化mem3
28    //**********found**********
29    ______Derived(int m1,int m2,intm3):
30    //**********found**********
31   ________,mem3(m3){)
32  int main(){
33    Base a(4,6);
34   Derived b(10,15,20);
35    int sum=a.sum()+b.sum();
36    cout<<"sum="<37    return 0;
38    }

选项

答案(1)public Base (2)Base::sum() (3)Derived:: (4)Base(m1,m2)

解析 (1)主要考查考生对公有继承的掌握情况,根据题目要求:派生类Derived从基类Base公有继承,因此这里使用public来公有继承。
    (2)主要考查考生对成员函数的掌握情况,根据题目对sum函数的要求:sum函数定义,要求返回mem1、mem2和mem3之和,因此这里直接调用基类的sum函数,再加上mem3就满足题目要求。
    (3)主要考查考生对构造函数的掌握情况,由于Derived的构造函数在类外定义,因此要加上类名和作用域符,即Derived::。
    (4)主要考查考生对构造函数的掌握情况,因为Derived是Base类的派生类,所以其构造函数要使用成员列表初始化先给Base初始化。
转载请注明原文地址:https://kaotiyun.com/show/EJfp777K
0

最新回复(0)