首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Base1{ public: Base1(){ } ~Base1(){ cout
有如下程序: #include using namespace std; class Base1{ public: Base1(){ } ~Base1(){ cout
admin
2021-09-05
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://kaotiyun.com/show/Zb5p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若字符指针P所指向的字符串为”abcdefg”,在执行语句()。Char*ap=newchar[strlen(p)+1];之后,ap指向的字符数组的元素个数为
已知函数f的原型是voidf(int*a,long&b);,变量vl、v2的定义是:imvl;longv2;下列调用语句中正确的是()。
在类中重载赋值运算符时,应将其声明为类的()。
有如下程序:#iinc1ude<iostream>us:ingnamespacestd;c1assA{public:AO{cout<<"A";}~AO{cout<<"~A";}
下列关于虚函数的说明中,正确的是()。
关于运算符重载,下列表述中正确的是()。
已知函数f的原型是voidf(int*a,long&b);,变量v1、v2的定义是:intv1;loongv2;下列调用语句中正确的是()。
下面对软件测试描述错误的是
软件测试的目的是()。
随机试题
关于衰老的叙述,错误的是
硬化注射疗法的主要作用机理是
商法的兼容性
某产品各零部件功能重要程度采用0—1评分法评分的结果如下表:则在修正各功能累计得分的前提下,零部件Ⅲ的功能重要性系数为( )。
燃气管道的附属设备有()。
设f(x)是连续函数,且,则[].
20世纪初中国共产党人提出要把马克思列宁主义应用到中国的实践当中去,具有代表性的早期领导人是
设函数f(x)=若反常积分∫1+∞f(x)dx收敛,则
若深度为5的完全二叉树的第5层有3个叶结点,则该二叉树一共有______个结点。
函数fun的功能是进行数字字符转换。若形参ch中是数字字符’0’~’9’,则’0’转换成’9’,’1’转换成’8’,’2’转换成’7’,……,’9’转换成’0’;若是其他字符则保持不变;并将转换后的结果作为函数值返回。请在程序的下划线处填入正确的
最新回复
(
0
)