首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Base1{ public: Base1(){ } ~Base1(){ cout
有如下程序: #include using namespace std; class Base1{ public: Base1(){ } ~Base1(){ cout
admin
2020-07-23
70
问题
有如下程序:
#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://www.kaotiyun.com/show/xGyp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为()。
下列关于函数参数的叙述中,正确的是
关于函数声明格式中的,下列叙述错误的是
有如下程序段:inti=1;while(1){i++;if(i==30)break;if(i%3==0)cout
下面不能作为软件设计工具的是
结构化程序设计的基本原则不包括()。
执行语句序列intx=l,&y=x;cout
设有关键码序列(66,13,51,76,81,26,57,69,23),要按关键码值递增的次序排序,若采用快速排序法,并以第一个元素为划分的基准,那么第一趟划分后的结果为()。
数据库管理系统是()。
下列符号中能够作为c++标识符的是()。
随机试题
机动车白天在道路上发生故障,妨碍交通又难以移动的,应当按规定开启________并在距来车方向50米至100米处设置警告标志。
以下关于用户账户的描述,不正确的是_________。
关于石膏病人处理措施的叙述正确的是()。
鉴别诊断首要的辅助检查是该病例的治疗原则应为
工程保险的主要险别有()。
机电工程验收的程序包括()。
劳动教养审批委员会的日常工作由()承担。
反诉:是指在已经开始的民事诉讼中,被告向审判机关提出的旨在使原诉被撤消或失去作用的请求。反诉中被告即是本诉的原告,反诉最迟应在本诉判决之前提起。反诉只能向审理本诉的审判机关提起,反诉与本诉的诉讼标的或诉讼理由应当具有牵连的关系。根据上述定义,下面哪种情况属
在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。
【S1】【S4】
最新回复
(
0
)