首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序 #include using namespace std; class AA{ char c; public: AA(char ch):c(ch){ cout
有如下程序 #include using namespace std; class AA{ char c; public: AA(char ch):c(ch){ cout
admin
2021-02-22
68
问题
有如下程序
#include
using namespace std;
class AA{
char c;
public:
AA(char ch):c(ch){ cout<
~AA(){ cout<<"a"; }
};
class BB{
AA m1;
AA m2;
public:
BB(): m2(’p’),m1(’q’){ cout<<"B"; }
~BB(){ cout<<"b"; }
};
int main(){
BB bb;
return 0;
}
运行这个程序的输出是
选项
A、pgBaab
B、pgBbaa
C、qpBaab
D、qpBbaa
答案
D
解析
构造函数初始化列表仅指定用于初始化成员的值,不指定这些初始化执行的次序,成员初始化的次序是类定义中声明成员的次序,成员初始化完成后执行构造函数的函数体;所以程序中在创建BB对象时,首先初始化m1,再初始化m2,由于m1、m2都是AA对象,且有实参q、p,所以调用构造函数AA(char ch),用ch初始化成员c后输出成员c的值,即输出’q’、’p’,再执行类BB的函数体,输出’B’;
程序执行结束时,系统会自动调用类的析构函数清理自己的成员,析构函数工作过程:1、执行析构函数的函数体;2、如果该类中拥有类对象成员,且类对象有析构函数,则以类对象成员声明次序的相反顺序调用其析构函数,销毁类对象成员;3、按原来构造顺序的相反顺序向上依次调用基类的析构函数。所以程序运行结束时,首先调用BB的析构函数并执行函数体,输出"b";然后调用m2的析构函数,销毁m2成员,输出’a’,再调用m1的析构函数,销毁m1成员,输出’a’;综上所述,程序运行的输出是:"qpBbaa";答案为D。
转载请注明原文地址:https://kaotiyun.com/show/Z7yp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有两个关系R和S如下:则由关系R得到关系S的操作是
有三个关系R、S和T如下:则由关系R和S得到关系T的操作是
有三个关系R、S和T如下:则由关系R和S得到关系T的操作是
设有课程关系模式:R(C#,Cn,T,TA)(其中C#为课程号,Cn为课程名,T为教师名,Ta为教师地址),并且假定不同课程号可以有相同的课程名,每门课程只有一位任课教师,但每位教师可以有多门课程。关系R范式最高达到
下面不属于软件需求分析阶段任务的是
在希尔排序法中,每经过一次数据交换后
在面向对象方法中,不属于“对象”基本特点的是
在下面的4个关键字中用来说明虚函数的是()。
下列关于模板的描述中,错误的是()。
在函数中,可以用auto、extem、register和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是()。
随机试题
下列选项中属于上层建筑两大组成部分的是()
Howcanasinglestampbeworth$16800?Anymistakemadeintheprintingofastampraisesitsvaluetostampcollectors.
I’vealreadydecided.I_________buyanewcar,
关于缺铁性贫血的一般临床表现,以下哪项不正确
A.200mlB.175mlC.150mlD.125mlE.100ml6岁儿童每日每千克体重需水约
刘先生构建了一个投资组合,其中20%投资于股票A,10%投资于股票B,30%投资于股票C,40%投资于股票D,四只股票的β值分别为1.20,91.52。则该投资组合的β指为()。
根据《个人贷款管理暂行办法》规定,贷款人应建立并严格执行贷款_______制度,通过电子银行渠道发放_______的,贷款人至少应当采取有效措施确定借款人真实身份。()[2013年11月真题]
下列财政政策措施中,不属于财政配置社会资源的机制和手段的是()。
汉朝的行政中枢机构在设置上实行( )。
无权(效)解释
最新回复
(
0
)