问题 单项选择题

若有如下程序: #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 j),B的构造函数中调用基类A的构造函数,使得a=3,b=4;d.fun()会调用函数move(3,5),使得(3,4)和(3,5)的对应部分分别相加,最后输出6,9。

问答题
单项选择题 A1/A2型题