首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class A { public: AO{cout
有如下程序: #include using namespace std; class A { public: AO{cout
admin
2019-05-06
50
问题
有如下程序:
#include
using namespace std;
class A
{
public:
AO{cout<<“A”;)
~A(){cout<<“-A”;)
};
class B:publicA
{
A*p;
public:
B0{cout<<“B”;P=new A();}
-B(){cout<<“~B”;delete p;)
);
int main()
{
B obj;
retum 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类的对象obi:首先调用~B(),接着再调用~A0因为在~B()函数中释放了动态创建的A类对象,故整个析构所输出的结果是~B~A~A。所以这个程序输出结果为ABA~B~A~A
转载请注明原文地址:https://kaotiyun.com/show/WKAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序:#include<iostream>usingnamespacestd;classPart{public:Part(intx=0):val(x){cout<~Part(){cout
必须用一对大括号括起来的程序段是
下列各组类型声明符中,含义相同的一组是
若有以下程序:#include<iostream>usingnamespacestd;classTestClass1{public:TestClass1(){X=0;}
已知doublevar;是文件1.CPP中的一个全局变量定义,若文件2.CPP中的某个函数也需要访问,则在文件2.CPP中var应说明为______。
在算法的4个特性中,算法必须能在执行有限个步骤之后终止指的是算法的______特性。
下列有关继承和派生的叙述中,正确的是()。
数据库管理员(DBA)是数据库系统的一个重要组成部分,有很多职责。以下选项不属于DBA职责的是()
算法的时间复杂度是指()。
叶子结点树中度为零的结点,也就是没有后件的结点,称为叶子结点。
随机试题
简述《我从参议员私人秘书的职位上卸任》的艺术特色。
环式沟通的缺点有:
逆行肾盂造影显示肾小盏杯口呈虫蚀状改变,杯口附近肾实质内有团块状造影剂与杯口相连是
企业支付的银行承兑汇票的手续费通过“管理费用”账户进行核算。()
牛皮箱纸板主要用于销售包装。()
以下关于另类投资基金的投资对象,说法错误的是()。
我国古代教育重视通过学校阵地实现“化民成俗”,可见他们重视教育的()。
中国人民银行行长周小川在2013年11月26日举行的“第三届中法金融论坛”上表示,中国在条件成熟时要取消对QDH和QFH资格额度审批,要进一步扩大合格境内机构投资者(QDH)和合格境外机构投资者(QFH)的主体资格,增加投资额度。试分析这一政策的实施对我国
A、3B、C、2D、1B
IEEE802.11i定义的安全协议和用户审核采用的协议分别是()。
最新回复
(
0
)