若有以下程序: #include<iostream> using namespace std; class A { public: A(int i,int j) {a=i; b=j;

admin2018-10-21  34

问题 若有以下程序:
    #include<iostream>
    using namespace std;
    class A
    {
    public:
    A(int i,int j)
    {a=i;
    b=j;
    }
    void move(int x,int y)
    {a+=x;
    b+=y;
    }
    void show()
    {cout<<a<<’’,’’<<b<<end1;
    }
    private:
    int a,b;
    };
    class B:private A
    {
    public:
    B(int i,int j):A(i,j){}
    void fun()
    {
    move(3,5);
    }
    void f1()
    {
    A::show();
    }
    };
    int main()
    {B d(3,4);
    d.fun();
    d.f1();
    return 0;
    }
    程序执行后的输出结果是(    )。

选项 A、3,4
B、6,8
C、6,9
D、4,3

答案C

解析 此题的执行过程如下:首先B d(3,4);语句调用B类的构造函数:B(int i,int i),B的构造函数中调用基类A的构造函数,使得a=3,b=4;d.fun()会调用函数move(3,5),使得(3,4)和(3,5的对应部分分别相加,最后输出6,9。
转载请注明原文地址:https://kaotiyun.com/show/D5Ap777K
0

最新回复(0)