首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Base1{ public: Base1(){ } ~Base1(){ cout
有如下程序: #include using namespace std; class Base1{ public: Base1(){ } ~Base1(){ cout
admin
2020-07-23
26
问题
有如下程序:
#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://kaotiyun.com/show/xGyp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列函数模板的定义中,合法的是
在面向对象方法中,不属于“对象”基本特点的是()。
以下关键字不能用来声明类的访问权限的是()。
已知函数f的原型是voidf(int*a,long&b);,变量v1、v2的定义是:intv1;longv2;下列调用语句中正确的是()。
下列选项中,不是C++关键字的是
某二叉树中有15个度为1的结点,16个度为2的结点,则该二叉树中总的结点数为
下列选项中,正确的C++表达式是
以下关键字不能用来声明类的访问权限的是()。
已知一运算符函数没有参数。下列关于该运算符函数的表述中错误的是
下列关于return语句的叙述中,正确的是
随机试题
明清小品是我国抒情小品文的鼎盛时期,那时的小品文特别注重【】
A.石菖蒲B.龙骨C.远志D.合欢皮E.酸枣仁
审查施工图预算的重点是()。
单位把账套建立起来以后,每个新的财务年度开始时,不再需要重建账套,只需要引入核算账套即可。()
对该企业职工的工资状况进行调查分析时,全部职工是()。以下公式正确的是()。
中华人民共和国公民申请个人住房贷款时,可提供的合法有效身份证件有()。
根据《旅行社条例》,导游人员有下列()情形的,由旅游行政管理部门责令改正,处1万元以上5万元以下的罚款。
某老师未经学生允许私自将学生的作文编人自己编著的优秀作文集,对该老师的做法叙述正确的是()
设求A100.
Whatshouldyouthinkaboutintryingtofindyourcareer?Youareprobablybetteratsomeschoolsubjectsthanothers.Thesema
最新回复
(
0
)