首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Base1{ public: Base1(){ } ~Base1(){ cout
有如下程序: #include using namespace std; class Base1{ public: Base1(){ } ~Base1(){ cout
admin
2021-09-05
33
问题
有如下程序:
#include
using namespace std;
class Base1{
public:
Base1(){ }
~Base1(){ cout<<"b1"; }
};
class Base2{
public:
Base2(){ }
~Base2(){ cout<<"b2"; }
};
class Derived: public Base2,public Base1{
public:
Derived(){ }
~Derived(){ cout<<’d’; }
};
int main(){
Derived obj;
return 0;
}
运行这个程序的输出是
选项
A、b1b2d
B、b2b1d
C、db1b2
D、db2b1
答案
C
解析
派生类构造函数都是先调用基类构造函数,再根据声明次序定义数据成员,另外对于多继承,派生类的构造函数初始化列表中,基类构造函数是按照基类在派生类的派生列表中出现的次序调用的;由于Derived类的派生列表中,Base2在前,所以应该先调用Base2的构造函数,再调用Base1的构造函数;销毁派生类对象时,总是按照构造函数运行次序的相反顺序调用析构函数,首先运行派生类析构函数,然后按继承层次依次向上调用各基类函数;所以Derived对象销毁时,首先调用Derived的析构函数,接着调用Base1的析构函数,最后调用Base2的析构函数;输出结果为:"db1b2",答案为C。
转载请注明原文地址:https://jikaoti.com/ti/7rc0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
假定下列语句都是程序运行后首次执行的输出语句,其中输出结果与另外三条语句不同的语句是()。
下列关于基类和派生类关系的叙述中,正确的是()。
下列有关内联函数的叙述中,正确的是()。
下面c++标识符中正确的是()。
下列控制对齐方式的操作符中,错误的是()。
下列数据结构中,能够按照“先进后出”原则存取数据的是()。
在容量为15的循环队列中,若头指针front=6,尾指针rear=9,则循环队列中的元素个数为
如果表达式--x/y中的“--”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为()。
下面关于C++流的叙述中,正确的是()。
随机试题
1950年起,联合国大会确定每年的12月10日为国际人权日,以纪念()的通过。
支配肘关节伸肌的神经是()。
A.肱骨髁上伸直型骨折B.肱骨干骨折C.桡骨远端骨折D.尺骨上1/3骨折E.肱骨大、小结节移行处肱骨外科颈骨折
“一湖映双塔,南北相对峙”描述的是()。
社会服务机构向立法和权力机构、社会媒体交代机构履行社会责任和义务的情况,这种交代属于()。
态度测量一般使用()的方法。
醉驾:人刑
含牙囊肿衬里上皮发生于()。
曲线y=xex与直线y=ex所围成图形的面积是______________.
以下正确的字符串常量是()。
最新回复
(
0
)