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

admin2020-06-29  44

问题 若有以下程序:
    #include
    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<    }
    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.fl();
    return 0:
    }
    程序执行后的输出结果是(    )。

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

答案C

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

最新回复(0)