首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序 #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
2015-07-22
34
问题
有如下程序
#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/ZVNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
在关系运算中,【】运算是在给定关系的某些域上进行的运算。
结构化程序设计主要强调的是
下列SQL语句中,用于修改表结构的是
operator是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为【】的。
数据库系统由数据库、【】、硬件平台、数据库管理员和软件平台所组成。
C++语言中的多态性分为编译时的多态性和【 】时的多态性。
若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需“要使用的存储类别是()。
以下for语句中不是死循环的是
C++语言中用于定义类的关键字是
在内存中,存储字符’X’要占用1个字节,存储字符串"X"要占用______个字节。
随机试题
说明矛盾的普遍性和特殊性辩证关系的原理、“两点论”和“重点论”相统一的原理对社会主义现代化建设的指导意义。
从某种程度上来说,出版物发行单位的经营计划能否如期实现,主要取决于出版物结构是否合理。()
WantedxxxForeignLanguageInstituteisaforeignlanguagestudyinginstitute.NowweareseekingfortwoEnglishteachers.
下列关于尿糖的说法中正确的是
对具有破产原因而又有再生希望的企业,经利害关系人申请,人民法院可以依法裁定重整。下列有关债务人及其出资人重整期间权利义务的表述中,正确的是()。
家庭教养方式对儿童有重要影响,该案例中反映的家庭家养方式倾向于()。
许多创业成功的人士都没有漂亮的学历,但这并没有妨碍他们成功。事实告诉我们,漂亮的学历对于成功具有重要作用。但是,一个人,只要有准确的信息分析能力、高度的经济敏感和果断的个人勇气,就能很快学会如何做出正确的决定,对于一个缺少以上三种素养的人,漂亮的学历没有什
关于政治思想,下列表述错误的是()。
ThewriterthinksthattheU.S.government’sdefinitionofthehomelessreveals______.Thebreakupoffamiliesislikelytole
有如下函数模板:templateTsquare(Tx){returnx*x;}其中的T是
最新回复
(
0
)