首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
77
问题
有如下程序:
#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全国计算机二级
相关试题推荐
下面______机制允许对一个函数名给出多个函数定义
下面程序段的运行结果是voidmain(){intt,a,b,c;a=1;b=2;C=2;while(a<b<c){t=a;a=b;b
关于类定义中的语句错误的是 classA {ihti; Aa; A*b; char*ch;};
______给出了数据库物理存储结构与物理存取方法
对于任意一个类,析构函数的个数最多为______。
C++语言类体系中,不能被派生类继承的有
下列有关程序设计的原则中错误的是
若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为(假设a[0][0]位于数组的第一个位置上)()。
tb此题考查的是对象的定义。对象的定义格式如下:类名对象名(参数表);所以题目中的tb是对象名标识符,而ta被定义成类MA的指针,故空格处应填tb。
数据结构主要研究的是数据的逻辑结构、数据的运算和()。
随机试题
开展出版活动的基本条件中,首要的是()。
服用胃动力药多潘立酮治疗消化不良,最佳用药时间是()。
常用有效量应比最小有效量大,而比最小中毒量小得多。()
隧道混凝土衬砌实测项目包括()。
试题五(土木建筑工程专业试卷)某拟建项目机修车间,厂房设计方案采用预制钢筋混凝土排架结构,其上部结构系统如图5所示。结构体系中现场预制标准构件和非标准构件的混凝土强度等级、设计控制参考钢筋含量等见表5.1。另经查阅国家标准图集,所选用
商业银行财务管理的核心内容是()。
设计网页时,为了方便浏览者从一个页面跳到另一个页面通常用()。
从所给的四个选项中,选择最合适的一个填入问号处,使之呈现一定的规律性:
根据下列材料,回答问题。某研究设计院向不同岗位级别职工支付的工资额以及该院职工人员结构资料分别如图1和图2。该研究设计院报告期工资总额较基期的增长率为()。
GeneticallyModifiedFoods—FeedtheWorld?[A]Ifyouwanttosparkaheateddebateatadinnerparty,bringupthetopicaboutg
最新回复
(
0
)