首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序 #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
29
问题
有如下程序
#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://jikaoti.com/ti/7Fl0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错误,请改正其中的错误,使程序正确运行。并且使程序输出的结果为:OK注意:错误的语句在//*****error******的下面,修改该语句即可。#include
数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和
将E-R图转换为关系模式时,实体和联系都可以表示为
关于关键字class和typename,下列表述中正确的是()。
有如下类声明:classSAMPLE{intn;public:SAMPLE(inti=0):n(i){}voidsetValue(intn0);};下列关于getVa
有如下类定义:classFoo{public:Foo(intv):value(v){}//①-Foo(){}//②private:F00(){}//③
某系统总体结构如下图所示该系统结构图是
下列结构中属于非线性结构的是
对长度为n的线性表排序,在最坏情况下,比较次数不是n(n一1)/2的排序方法是()。
如果有以下定义及初始化:inta=3,*p=&a;则由此可以推断,*p的值是()。
随机试题
下列选项中,正确说明认识对实践能动作用的有()。
具有及时性和高可靠性的操作系统是()。
试述慢性中央性颌骨骨髓炎的临床表现。
肺系病证主要的病机特点是
A、易复性疝B、难复性疝C、嵌顿性疝D、绞窄性疝E、滑动性疝疝块突然增大,不能回纳。伴有疼痛并引起肠瘘
产业组织结构的影响主要包括()。
在美国,学术界、工商界、主管部门和多数消费者倾向于认为用豆浆代替牛奶是一种更健康的选择。不过,绝大多数西方人很不喜欢豆味,所以美国的豆浆有一步去除或掩盖豆味的操作,而中国人就会觉得这样一点儿豆浆味也没有。对奶味的偏好和对豆味的排斥,是豆浆在西方不够受欢迎的
某剧组准备拍摄《大唐王朝》的纪录片,下列哪一场景不可能在片中出现?()
2022年1月17日,我国在太原卫星发射中心用“长征二号”丁运载火箭,成功将()发射升空,这标志着我国2022年的航天发射任务首战告捷。
1/27
最新回复
(
0
)