首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class AA{ public: AA(){ cout
有如下程序: #include using namespace std; class AA{ public: AA(){ cout
admin
2021-05-06
30
问题
有如下程序:
#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/qJfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下类定义:classB{private:voidfun1(){}protected:voidfun2(){}public:voidfun3(){}
给定程序中,函数fun的功能是:将a所指3×5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。例如,有下列矩阵:123451234
下列关于C++函数的说明中,正确的是()。
下列有关继承和派生的叙述中,正确的是()。
请打开考生文件夹下的解决方案文件proj1,其中在编辑窗口内显示的主程序文件中定义有Xabc类和主函数main。在程序文本中位于每行”//ERROR*********found*********下面的一行有错误,请加以更正。更正后程序的输出为:
有如下程序:#inc1ude<iostream>#inc1ude<iomanip>usingnamespacestd;intmain(){ints[]={123,234};cout<
如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。有如下程序,没有使用多态机制。#includeusingnamespacestd;classBase{inta,b;
在软件开发中,需求分析阶段产生的主要文档是()。
在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。
建立一个有成员对象的派生类对象时,各构造函数体的执行次序为()。
随机试题
炔诺酮每片含甲地孕酮每片含
下列除哪项外,均符合“问诊”的要求
咪唑类抗真菌药的作用机制是
A、头孢唑林钠与0.9%氯化钠注射液B、头孢曲松钠与复方氯化钠注射液C、胰岛素与0.9%氯化钠注射液D、青霉素与5%葡萄糖注射液E、维生素C与氯化钾注射液两种药物配伍之后效价降低的是()。
在经济全球化进程中,随着空间经济活动的变化,城镇体系的结构发生了变化,能呈现出的状态不包括:
王先生投资某项目初始投入10000元,年利率10%,期限为一年,每季度付息一次,按复利计算,则其1年后本息和为()。
某老师未经学生允许私自将学生的作品编入自己编著的优秀作文集,对该老师的做法叙述正确的是()。
下列叙述正确的是()。
A、 B、 C、 D、 C
A、Hisadvancedage.B、Hischildren’sefforts.C、Hisimprovedfinancialcondition.D、Hissecondwife’spositiveinfluence.D
最新回复
(
0
)