若有如下程序:
#include<iostream>
using namespace std;
Class TestClass1
private:
int a;
public:
TestClassl(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):TestClassl(k-2),TestClass2(k+2)
c=k;
void disp()
TestClasssl::disp();
TestClasss2::disp();
cout<<c<<end1;
;
mt main()
TestClass3 Obj(10);
Obj.disp();
return 0;
程序执行后的输出结果是( )。
A.10,10,10
B.10,12,14
C.8,10,12
D.8,12,10
参考答案:D
解析: 首先定义TestClass3的对象Obj,参数为10。其中TestClass3为TestClassl和TestClass2的派生类。然后调用disp成员函数。Disp中首先执行“TestClassl::disp();”,然后执行“TestClass2::disp();”,最后执行输出语句“cout<<c<<end1”。TestClass1(k-2),所以第一个输出8,TestClass2(k+2),第二个输出12,最后一个本类中的输出即为10。