问题 填空题

下列程序输出结果为:
#include<iostream>
using namespace std;
class TestClass1

public:
TestClass1()
TestClass1(int i)

x1=i;

void dispa()

cout<<"x1="<<x1<<",";

private:
int x1;
;
class TestClass2:public TestClass1

public:
TestClass2()
TestClass2(int i):TestClass1(i+10)

x2=i;

void dispb()

dispa();
cout<<"x2="<<x2<<endl;

private:
int x2;
;
int main()

TestClass2 b(2);
b.dispb();
return 0;

答案

参考答案:xA=AB,xB=B

解析: 由主函数main入手,首先定义类TestClass2的对象b,成员数据为2。然后调用dispb函数。在dispb中首先执行dispa函数,TestClass2为TestClass1的派生类,“TestClass2(int i):TestClass1(i+10)”所以TestClass1中的x1=12,dispa输出的结果为x1=12。在TestClass1中x2=2,所以dispb中的输出语句“cout<<”x2=”<<x2<<endl;”,输出x2=2。即答案为“x1=12,x2=2”。

报关编码
单项选择题