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

admin2021-09-05  49

问题 若有以下程序:
    #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.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 j),B的构造函数中调用基类A的构造函数,使得a=3,b=4;d.fun(、)会调用函数move(3,5),使得(3,4)和(3,5)的对应部分分别相加,最后输出6,9。
转载请注明原文地址:https://jikaoti.com/ti/KFh0FFFM
0

最新回复(0)