首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Base1{ public: Base1(){ } ~Base1(){ cout
有如下程序: #include using namespace std; class Base1{ public: Base1(){ } ~Base1(){ cout
admin
2021-07-02
52
问题
有如下程序:
#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/vefp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下函数模板定义:template<classT>Tfunc(Tx,Ty){returnx*x+y*y;}在下列对func的调用中,错误的是()。
有如下程序:#include<iostream>usingnamespacestd;classBoat;classCar{public:Car(inti):weight(i){}
定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为()。
当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为()。
对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为()。
数据库技术的根本目标是要解决数据的()。
结构化程序所要求的基本结构不包括()。
结构化程序设计的基本原则不包括()。
下列选项中不属于结构化程序设计原则的是()。
随机试题
A、三腔两囊管压迫止血B、奥美拉唑(洛赛克)C、胃大部分切除术D、巴曲酶(立止血)E、输血肝硬化引起的上消化道出血首先的治疗方法为
食品中的细菌污染数量(细菌总数)反映了食品的一般卫生质量,以及食品在______过程中的卫生措施和管理情况
患者面部麻木,查体示右口角周围痛觉减退,则病损部位在
关于合同的分类,下列表述正确的是:()
“备案号”栏应填()。“商品名称,规格型号”栏应填()。
下列不属于金融诈骗罪特征的是()。
下列说法正确的是()
一位家长抱怨:李老师隔三差五给家长打电话,每次都把我们狠狠地批判一顿,还经常让我们到学校听他训话。李老师的做法()。
一家公司销售两种商品A和B,利润率分别为10%和20%。已知公司共盈利3000元,两种商品的总成本之和与商品A的销售额相等。问商品A的总成本是多少元?
Youaregoingtoreadanarticlewhichisfollowedbyalistofexamplesorheadings.Choosethemostsuitableonefromthelist
最新回复
(
0
)