问题 单项选择题

若有如下程序:
#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。

解答题
单项选择题