有如下程序;
#include <iostream>
using namespace std;
class Base
public;
Base(inti)x=i;
void dispa0cout<<x<<’,’;
private;
int x;
;
class Derived;public Base
public;
Derived(int i);Base(i+10) x=i;)
void dispb()dispa();cout<<x<<end1;
private;
int x;
;
int main()
Derived b(2) ;
b.dispb();
return 0;
运行的结果是( )。
A.2,2
B.12,2
C.12,10
D.10,2
参考答案:B
解析: "Derived b(2) ;¨以整数2实例化变量b,在执行Derived的构造函数时,以i+10即12去调用类Derived的父类的构造函数,将Base::x初始化为12,然后将Derived::x赋值为2。在执行b.dispb()时,先调用父类中的dispa,输出Base::x,即12,再输出Derived::x,即2,所以运行结果为“12,2”。