首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class AA{ public: AA(){ cout
有如下程序: #include using namespace std; class AA{ public: AA(){ cout
admin
2019-07-10
44
问题
有如下程序:
#include
using namespace std;
class AA{
public:
AA(){ cout<<"A"; }
~AA(){ cout<<"a"; }
};
class BB: public AA{
AA aa;
public:
BB(){ cout<<"B"; }
~BB(){ cout<<"b"; }
};
int main(){
BB bb;
return 0;
}
运行这个程序的输出是
选项
A、AABaab
B、AABbaa
C、BAAaab
D、BAAbaa
答案
B
解析
首先,构造函数的工作过程:1、派生类的构造函数在执行函数体之前调用基类的构造函数初始化基类;2、在执行函数体之前根据声明次序初始化自己的成员;3、执行自身函数体。所以程序中在创建BB对象时,首先调用AA的构造函数,输出"A",然后初始化类BB中的成员aa,调用AA的构造函数,输出"A",最后执行函数体,输出"B";
程序执行结束时,系统会自动调用类的析构函数,析构函数工作过程:1、执行析构函数的函数体;2、如果该类中拥有类对象成员,且类对象有析构函数,则以类对象成员声明次序的相反顺序调用其析构函数,销毁类对象成员;3、按原来构造顺序的相反顺序向上依次调用基类的析构函数。所以程序运行结束时,首先调用BB的析构函数并执行函数体,输出"b";然后调用aa的析构函数,销毁aa成员,输出"a";最后调用基类AA的析构函数,输出"a";综上所述,程序运行的输出是:"AABbaa";答案为B。
转载请注明原文地址:https://kaotiyun.com/show/rP8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有以下程序:#include<iostream>usingnamespacestd;classR{public:R(intr1,intr2){R1=rl;
A、 B、 C、 D、 A就软件测试而言,它的目的是发现软件中的错误。但是,发现错误并不是最终目的,最终目的是通过测试发现错误之后还必须诊断并改正错误,这才是测试的目的。由于测试的目标是暴露程序中的错误,所以
派生类构造函数的执行顺序是先执行【】的构造函数,然后执行成员对象的构造函数,最后执行【】的构造函数。
设有以下说明语句:typedefstruct{intn;charch[8];}PER;则下面叙述中,正确的是()。
软件结构是以______为基础而组成的一种控制层次结构。
下列符号中可以用作C++标识符的是()。
下列有关类成员的叙述中,正确的是()。
在重载一个运算符为成员函数时,其参数表中没有任何参数,这说明该运算符是
软件开发环境是全面支持软件开发全过程的【】集合。
当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式是()。
随机试题
A、 B、 C、 D、 C
胎儿枕额径的平均值是:
资产的特征是()。
()不能说明求助者的心理问题的复杂程度较大。
道德品质形成和转化的前提与基础是()。
儿童的前言语阶段,是一个在语言获得过程中的()核心期。
对有违法犯罪嫌疑的人,需要继续盘问的,在特殊情况下,经县级以上公安机关批准,可以将继续盘问时间延长至()小时。
U.SjeansmakerLeviStrauss&Co.denieditwasplayingonconsumerfearsbylaunchingalineoftrousersfittedwith"anti-
当前建立和完善社会保障体系首先要坚持完善下列“保障线”制度()
ChooseFOURletters,A-G.Writethecorrectlettersinboxes6-9onyouranswersheet.WhichFOURusesarelistedforbi
最新回复
(
0
)