问题 单项选择题

下面程序的运行结果是( )。 #include<iostream.h> class base{ protected: int a; public: base(){cout<<“0”;} }; Class base1:virtua1 base{ public: base1(){cout<<“1”;} }; class base2:virtual base{ public: base2(){cout<<“2”;} }; Class derived:public base1,public base2{ public: derived(){cout<<“3”;} }; void main() { derived obj; cout<<endl; }

A.0123

B.3120

C.0312

D.3012

答案

参考答案:A

解析: 本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。

选择题
填空题