问题
填空题
下列程序输出结果为:
#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”。