首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include usmg namespace std; classA { Public: AO{tout
有如下程序: #include usmg namespace std; classA { Public: AO{tout
admin
2020-04-07
42
问题
有如下程序:
#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://kaotiyun.com/show/gj8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列函数的功能是判断字符串str是否对称,对称则返回true,否则返回false。请在横线处填内容,实现该函数。boolfun(char*str){inti=0,j=0;while(str[j])j++;
下面程序的结果为【】。#include<iostream.h>voidmain(){inta=1,b=2;boolc=1;if((a>b)||c)
有以下程序:#include<iostream>usingnamespacestd;classBase{public:Base(){x=0;}
有如下程序:#includeusingnamespacestd;classA{public:A0{cout
软件工程研究的内容主要包括:______技术和软件工程管理。
有如下数组声明:intnum[10];,下标值引用错误的是
开发大型软件时,产生困难的根本原因是
数据库设计分为需求分析阶段、______阶段、逻辑设计阶段、物理设计阶段、数据库实施阶段、数据库运行和维护阶段。
关于类模板,下列表述不正确的是
下面关于this指针的说法中错误的是()。
随机试题
关于脾触诊的叙述,错误的是
5个月的婴儿由于呼吸困难半天来院急诊。平时体健,3天前突然流涕,轻咳,今晨热退,呼吸急促。体检:T37.8℃,急性病容,喘息,唇周轻紫,呼吸80次/分,脉搏150次/分,两肺呼气延长,闻及干性啰音。对于指导治疗最首要的检查是
A.核对用血申请单,血袋标签、交叉配血试验记录B.核对患者姓名,性别,年龄、病室、床号、血型等C.核对患者症状,体征,治疗过程D.逐项填写患者输血反应回报单,并返还输血科保存,输血科每日统计上报医务处E.逐项填写患者输血反应回报单,并上报院长室
范围变更是在已审批通过的项目范围基础上进行改变与调整。项目范围变更常常伴随着对成本、进度、质量或其他目标进行调整的要求。项目范围变更的结果往往是对计划过程、技术和计划文件进行更新。变更一旦确定,需要将所有更新内容或文件以适当的方式通知或传达到项目利益相关者
①所以,思想解放的闸门没有打开以前,旧传统往往是天经地义、神圣不可侵犯的②一方面,因为它是漫长世代的历史形成的,在社会上有着很深的影响,成了一种传统的力量③每一次伟大的思想解放运动,都不是一件简单的事情。旧思想已经不再适合历史发展的新趋势,但是要想改变
某企业原有职工110人,其中技术人员是非技术人员的10倍。今年招聘后,两类人员的人数之比未变,且现有职工中技术人员比非技术人员多153人。问今年新招非技术人员多少名?()
设α1=,问λ取何值时,(1)β不能由α1,α2,α3线性表示?(2)β可由α1,α2,α3线性表示且表达式唯一?(3)β可由α1,α2,α3线性表示但表达式不唯一?
函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在C中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在C数的百位和个位上。例如,当a=45,b=12时,调用该函数后,c=5142。注意:部分源
1.Insuchachanging,complexsocietyformerlysimplesolutionstoinformationalneedsbecomecomplicated.Manyoflife’sprobl
Receivingguestsshouldbegreatfunforthehostess(女主人)asitisfortheguests.Ifyouplancarefully,everythingissureto
最新回复
(
0
)