有如下程序: #include<iostream) using namespace std; classBase{ public: Base(int x=0){cout<<x;} }; Class Derived:

admin2013-02-27  27

问题 有如下程序:    #include<iostream)    using namespace std;    classBase{    public:    Base(int x=0){cout<<x;}    };    Class Derived:public Base{    public:    Derived(int x=0){cout<<x;}    private:    Base Val;    };    int main(){    Derived d(1);    return

选项 A、100     
B、000
C、010     
D、001

答案D

解析  本题考查的知识点是:类的构造。建立一个类的对象时,构造函数的执行顺序如下:①执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);②执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下):③执行自身的构造函数。本题Derived类继承于Base类,所以首先会构造基类Base,但 Derived类的构造函数没有初始化列表,所以将调用Base类的默认构造函数,输出一个0。接下来由于它的成员中还定义了一个Base类的对象,而构造函数也没有显示初始化这个对象,所以再次调用
转载请注明原文地址:https://kaotiyun.com/show/IlVp777K
0

最新回复(0)