首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Base1{ public: Base1(){ } ~Base1(){ cout
有如下程序: #include using namespace std; class Base1{ public: Base1(){ } ~Base1(){ cout
admin
2015-07-22
30
问题
有如下程序:
#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/1yNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列打开文件的表达式中,错误的是
将E-R图转换到关系模式时,实体与联系都可以表示成
以下程序运行后的输出结果是【】#include<iostream>#include<string>usingnamespacestd;classY;classX
结构化设计主要分为系统设计和模块设计,【】的任务是决定系统的模块结构。
下列关于虚基类的描述,错误的是
下面程序的运行结果为#include<iostream.h>classA{public:A(){cout<<"1";}~A(){cout<<"2";}};c
下列有关内联函数的叙述中,正确的是
长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。
具有3个结点的二叉树有
在内存中,存储字符’X’要占用1个字节,存储字符串"X"要占用______个字节。
随机试题
Allthehousewiveswhowenttothenewsupermarkethadonegreatambition:tobetheluckycustomerwhodidnothavetopayfor
在国际工程施工中,某工程的直接索赔款额为650万元,现场管理费的索赔款额为350万元,则索赔的总部管理费可以是()万元。
下列关于低压配电和控制电器防火措施的检查的说法错误的是()。
中央银行调节基准利率会对证券价格产生影响,一般来说,下列说法错误的是( )。
下列选项中,不属于企业总体战略的决策是()。
刑事强制工作是依据《刑事诉讼法》对犯罪嫌疑人采取()的工作。
考试对于()相当于()对于登机
以下民事法律行为中,属于双方民事法律行为的是()。
作为商品的计算机软件,其价值的物质承担者是
Awebcamisadigitalcamerathatsendsvideoimagestoothercomputerusers.It’saboutthe【C1】______ofapoolballandtypical
最新回复
(
0
)