以下程序输出结果为______。 #include<iostream> using namespace std; class TestClass 1 { 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<<end1; } private: int x2: }: int main() { TestClass2 b(2): b.dispb(); return 0; }
参考答案:x1=12,x2=2
解析: 由主函数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<<end1;”中输出x2=2。即答案为“x1=12,x2=2”。