有如下程序: #include <iostream.h> using namespace std; class Base { public: Base(){ cout<<"BB"; f(); } voidf

admin2010-06-06  27

问题 有如下程序:    #include <iostream.h>    using namespace std;    class Base    {    public:      Base(){ cout<<"BB"; f(); }      voidf(){cout <<"Bf"; }    };    class Derived: public Base    {    public:      Derived (){cout<<"DD";}      void f(){cout<<"Df";}    };    int main(){Derived d; return 0;}    执行上面的程序将输出

选项 A、BBBfDD
B、BBDfDDDf
C、DD
D、DDBBBf

答案A

解析 本题考核类的继承与派生知识。派生类构造函数执行的一般次序如下:首先调用基类构造函数,调用顺序按照它们被继承时说明的顺序。然后调用子对象的构造函数,调用顺序按照它们在类中的说明顺序。最后是派生类构造函数中的内容。题中定义派生类对象d时,先调用基类Base的构造函数输出BBBf(注意:基类Base构造函数中调用的函数f()是基类中的实现,而不是派生类中的实现),然后调用派生类Derived的构造函数输出DD。
转载请注明原文地址:https://jikaoti.com/ti/zUW0FFFM
0

最新回复(0)