问题 单项选择题

下面程序的运行结果是 #include<iostream.h> class base{ protected: int a; public: base( ) {cout < < "0";} }; class base l: virtual base{ public: base l ( ) {cout < <"1";} }; class base 2: virtual base{ public: base2 ( ) {cout < <"2";} }; class derived: public base 1, public base2{ public: derived( ) {cout < < "3";} }; void main( ) { derive obj; cout < < endl;} A) 0123 B) 3120 C) 0312 D) 3012

答案

参考答案:A

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

单项选择题
单项选择题