问题
单项选择题
有如下程序:
#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选项。