首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #iinc1ude <iostream> us:ing namespace std; c1assA { public: AO{cout<<"A";} ~AO{cout<<"~A";}
有如下程序: #iinc1ude <iostream> us:ing namespace std; c1assA { public: AO{cout<<"A";} ~AO{cout<<"~A";}
admin
2020-04-07
55
问题
有如下程序:
#iinc1ude <iostream>
us:ing namespace std;
c1assA
{
public:
AO{cout<<"A";}
~AO{cout<<"~A";}
};
c1ass B:public A
{
A*p;
public:
B(){cout<<"B";p=new A();}
~B(){cout<<"~B";delete p;}
};
int main()
{
B obj;
return ();
}
执行这个程序的输出结果是( )。
选项
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(),接着再调用~AO因为在~B()函数中释放了动态创建的A类对象,故整个析构所输出的结果是~B~A~A。所以这个程序输出结果为ABA~B~A~A。
转载请注明原文地址:https://kaotiyun.com/show/Xt8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
在下面的运算符重载函数的原型中,错误的是______。
软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的是【】。
.、.*、->、::、?:这五个运算符______重载。
下列选项中,不属于模块间耦合的是
下列选项中不符合良好程序设计风格的是()。
下列叙述中正确的是
数据库设计分为需求分析阶段、______阶段、逻辑设计阶段、物理设计阶段、数据库实施阶段、数据库运行和维护阶段。
下面关于this指针的说法中错误的是()。
下述关于数据库系统的叙述中正确的是
下列选项中不属于软件生命周期开发阶段任务的是()。
随机试题
在考生文件夹下有一个数据库文件“samp3.accdb”,里面已经设计了表对象“tEmp”、窗体对象“fEmp”、宏对象“mEmp”和报表对象“rEmp”。同时,给出窗体对象“fEmp”的“加载”事件和“预览”及“打印”两个命令按钮的单击事件代码,请按以
肉芽组织
集权
CSTNet指的是()
由业主提供的工程担保有()。
凭证审核、记账、查询、结账由操作员BB审核凭证并签章,记账,查询银行存款日记账,查询科目汇总表,结账。
太阳风中的一部分带电粒子可以到达M星表面,将足够的能量传递给M星表面粒子,使后者脱离M星表面,逃逸到M星大气中。为了判定这些逃逸的粒子,科学家们通过三个实验获得了如下信息:实验一:或者是X粒子,或者是Y粒子;实验二:或者不是Y粒子,或者
APA是()的简称。
影响人身心发展的因素主要有()
公有制的主体地位主要体现在()。
最新回复
(
0
)