首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Base1{ public: Base1(){ } ~Base1(){ cout
有如下程序: #include using namespace std; class Base1{ public: Base1(){ } ~Base1(){ cout
admin
2020-07-23
37
问题
有如下程序:
#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/ayl0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下面是重载为非成员函数的运算符函数原型,其中错误的是
下列关于运算符重载的描述中,错误的是
已知在一程序中已定义函数doubleMak(intm,doublen);则下列函数中不可在同一程序中重载的是
下面不能作为软件设计工具的是
下列叙述中正确的是
下列关于类、对象、属性和方法的叙述中,错误的是()。
数据库系统的核心是()。
下面关于数据库三级模式结构的叙述中,正确的是()。
要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是30,50,-88,0和0,则下列定义语句中错误的是()。
下列选项中,正确的C++表达式是()。
随机试题
进口到中国的某种化工材料数量激增,其中来自甲国的该种化工材料数量最多,导致中国同类材料的生产企业遭受实质损害。中国商务部决定启动保障措施立案调查。问题:(1)商务部实施的保障措施调查仅能局限于来自甲国的该种化工材料吗?(2)商务部在采取保障措施时可以
下列说法中正确的有_______。
骨无菌性坏死又称(1)病,好发于(2)年龄组。
以下哪种情况行融合术后,对颈椎旋转功能的影响最大
对建设项目实施全过程控制时,应以( )为主。
采取()策略的投资管理人并不试图用基本分析的方式来区分价值被高估或低估的股票,也不试图预测股票市场的未来变化,而是力图模拟市场构造投资组合,以取得与市场组合相一致的风险收益结果。
Amongthemostpopularbooksbeingwrittentodayarethosewhichareusuallyclassifiedassciencefiction.Hundredsoftitlesar
下列没有语病的一项是()
大湾区
关于SIP中INVITE消息的描述中,正确的是()。
最新回复
(
0
)