首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include usmg namespace std; classA { Public: AO{tout
有如下程序: #include usmg namespace std; classA { Public: AO{tout
admin
2020-04-07
27
问题
有如下程序:
#include
usmg namespace std;
classA
{
Public:
AO{tout<<"A";}
~A(){cout<<"~A;}
};
class B:public A
{
A*p;
public:
B(){cout<<"B";P=new A();}
~B(){tout<<"~B";delete p;}
};
int main()
{
B obj;
return 0;
}
执行这个程序的输出结果是( )。
选项
A、BAA~A~B~A
B、ABA~B~A~A
C、BAA~B~A~A
D、ABA~A~B~A
答案
B
解析
此题考查的是派生类对象的构造与析构。建立派生类对象时,构造函数的执行顺序如下:执行基类的构造函数,调用顺序按照各个基类被定义时声明的顺序(自左向右)->执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序一>执行派生类的构造函数。所以本题在建立派生类B的对象obj是会先调用基类A的构造函数,然后调用自身的构造函数。注意:B类中定义的成员p是A类的指针而不是一个对象,故在调用自身构造函数前不需要构造。而在B类构造函数中使用new操作符动态地构造了一个A类的对象,所以整个构造结果是输出:ABA。
派生类对象的析构与构造严格相反,即先析构自身,然后析构自身所包含的成员对象,最后调用基类的析构函数。故本题中当main()函数返回时,析构B类的对象obj:首先调用~B(),接着再调用~A0因为在~B()函数中释放了动态创建的A类对象,故整个析构所输出的结果是~B~A~A。所以这个程序输出结果为ABA~B~A~A
转载请注明原文地址:https://jikaoti.com/ti/2WA0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列程序的输出结果是【】。#includeusingnamespacestd;classBase{public:intm,n;Base(inti,intj):m(i),n(j){}
.、.*、->、::、?:这五个运算符______重载。
软件工程研究的内容主要包括:______技术和软件工程管理。
运算符重载是对已有的运算符赋予多重的含义,所以()。
有3个结点的二叉树有()。
下面叙述错误的是()。
空字符串的长度是_____。
下列函数的功能是判断字符串str是否对称,对称则返回true,否则返回false。请在画线处填上适当内容,实现该函数。boolfun(char*str)}inti:0,j=0;while(str[j])(6);
开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作()。
随机试题
放射性核素治疗的管理:一次服用131I的放射性活度是多少时应确定进行住院治疗
乳化剂类型改变造成下列乳剂不稳定现象的原因是A.Zeta电位降低B.分散相与连续相存在密度差C.微生物及光、热、空气等的作用D.乳化剂失去乳化作用E.乳化剂性质改变酸败
下列哪种人不属于刑事附带民事诉讼中依法负有赔偿责任的人?
【背景资料】某卫生中心由五幢大楼(门诊楼、急诊楼、住院楼等)组成,卫生中心的机电工程内容有建筑给水排水、建筑电气、通风与空调、消防工程和电梯安装工程。卫生中心还建设一个变电所、水泵房和锅炉房,机电工程的冷水机组、锅炉、变配电设备和电梯等大型设备均由业主采
拥有一定的净资产是企业资质的法定条件,下列关于企业净资产的说法中,错误的是()。
商业银行中风险管理总监应当是商业银行董事会成员,同时担任商业银行副总裁或以上职务。()
(2012年)在企业技术创新过程模式中,创新难度最大的是()。
根据下列统计资料回答问题。截至2012年底,中国电子商务市场交易规模达7.85万亿,同比增长30.83%。其中,B2B电子商务交易额达6.25万亿,同比增长27%,相较2011年下滑两个百分点。网络零售市场交易规模达13205亿元,同比增长64.
那么国产电影市场需不需要职业导演?这是_______的。一个健康的市场,应该以职业导演打底,非职业导演_______。今年非职业导演崛起,说到底是电影市场在用一种艺高人胆大的方式洗牌。填入画横线部分最恰当的一项是:
下列程序的功能是在监控台上每隔一秒钟显示一个字符串"Hello!",能够填写在程序中下划线位置,使程序完整并能正确运行的语句是()。publicclassTestimplementsRunnable{publicstaticvoidmain(Stringa
最新回复
(
0
)