若有如下程序:
#include<iostream>
using namespace std;
class TestClass1
private:
int a;
public:
TestClass1(int i)
a=i;
void disp()
cout<<a<<",";
;
class TestClass2
private:
int b;
public:
TestClass2(int j)
b=j;
void disp()
cout<<b<<",";
;
class TestClass3:public TestClass2,public TestClass1
private:
int c;
public:
TestClass3(int k):TestClass1(k-2),TestClass2(k+2)
c=k;
void disp()
TestClass1::disp();
TestClass2::disp();
cout<<c<<endl;
;
int main()
TestClass3 obi(10);
obj.disp();
return 0;
程序执行后的输出结果是( )。
A.10,10,10
B.10,12,14
C.8,10,12
D.8,12,10
参考答案:D
解析: 由主函数mian入手,首先定义TestClass3的对象obj,参数为10。其中TestClass3为TestClass1和TestClass2的派生类。然后调用disp成员函数。Disp中首先执行“TestClass1::disp();”,然后执行“TestClass2::disp();”,最后执行输出语句“cout<<c<<endl;”。TestClass1(k-2),所以第一个输出8,TestClass2(k+2),第二个输出12,最后一个本类中的输出即为10。