有如下程序: #include using namespace std; class A { public: A(int i) { x = i; } void dispa () { cout

admin2019-04-18  33

问题 有如下程序:
#include
using namespace std;
class A {
public:
A(int i) { x = i; }
void dispa () { cout << x <<′,′; }
private :
int x ;
};
class B : public A {
public:
B(int i) : A(i+10) { x = i; }
void dispb() { dispa(); cout << x << endl; }
private :
int x ;
};
int main() {
B b(2);
b.dispb();
return 0;
}
执行这个程序的输出结果是(    )。

选项 A、10,2
B、12,10
C、12,2
D、2,2

答案C

解析 本题考查派生类的构造函数和基类的构造函数。本题中类B继承类A,定义了一个类B的对象并初始化b(2),此时会执行类B的构造函数,执行的结果是继承类A中的私有成员赋值了12,给类B自身的数据成员x赋值了2,执行b.dispb()后,输出类A的私有成员x,输出类B自身的数据成员,所以答案为C。
转载请注明原文地址:https://kaotiyun.com/show/ypAp777K
0

最新回复(0)