问题 单项选择题

有如下程序:
#include<iostream>
using namespace std;
class MyClass
public:
MyClass(int x):val(x)
void Print()constcout<<"const:val=<<<val<<’\t’;
void Print()cout<<"val="<<val<<’t’;
private:
int val;

int main()
const MyClass obj1(10);
MyClass obj2(20);
obj1.Print();
obj2.Print();
return 0;

程序的输出结果是( )。

A.val=10 const:val=20

B.const:val=10 const:val=20

C.const:val=10 val=20

D.val=10 val=20

答案

参考答案:D

解析: 在建立类对象时,构造函数的执行顺序如下:执行基类的构造函数,调用顺序按照各个基类被继承的声明顺序;执行成员对象的构造函数,调用顺序按照各个成员在类中的声明顺序;执行自身的构造函数。根据以上总结以及题意可知答案选择D选项。

单项选择题
单项选择题