问题 单项选择题

若有如下程序:
#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。

单项选择题
单项选择题