首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序 #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
2020-05-14
45
问题
有如下程序
#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(charch),用ch初始化成员c后输出成员c的值,即输出’q’、’p’,再执行类BB的函数体,输出’B’;程序执行结束时,系统会自动调用类的析构函数清理自己的成员,析构函数工作过程:
1、执行析构函数的函数体;
2、如果该类中拥有类对象成员,且类对象有析构函数,则以类对象成员声明次序的相反顺序调用其析构函数,销毁类对象成员;
3、按原来构造顺序的相反顺序向上依次调用基类的析构函数。所以程序运行结束时,首先调用BB的析构函数并执行函数体,输出"b";然后调用m2的析构函数,销毁m2成员,输出’a’,再调用m1的析构函数,销毁m1成员,输出’a’;综上所述,程序运行的输出是:"qpBbaa";答案为D。
转载请注明原文地址:https://www.kaotiyun.com/show/dv8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序:#include<iostream>usingnamespacestd;classCA{public:CA(){cout<<’A’;}};classCB:priva
下列各类函数中,不是类的成员函数的是
下面程序应能对两个整型变量的值进行交换。以下正确的说法是 #include<iostream.h> voidswap(intp,intq) {intt; t=p; p=q; q=t;} voidmain()
不合法的main函数命令行参数表示形式是()。
下面程序的运行结果是()。#include<iostream.h>intx=5;intfun(inta){intc;C=X*a;retumc;}vo
如果表达式x=y*z中的“*”是作为成员函数重的运算符,采用运算符函数调用格式,该表达式还可以表示为______。
A、 B、 C、 D、 D虚函数在运行阶段和类的对象绑定在一起,这样成为动态联编。虚函数声明只能出现在类声明中虚函数原型中,而不能在成员的函数体实现的时候。必须由成员函数来调用或者通过指针、引用来访问虚函数。
数据库的数据模型所描述的内容有三个部分,它们是()。
下面关于C++语言变量的叙述错误的是
关于面向对象的程序设计方法,下列说法正确的是
随机试题
Microsoftisnolongertheworld’sbiggestcompany【C1】______marketcapitalization.ThreeotherU.S.companieshaveovertaken【C
不属于光电效应的产物的是
某患者,车祸后诊断为腹部闭合性损伤,伴休克,腹穿抽出不凝固血液。应采取的治疗原则是
某钢筋混凝土框架结构厂房,拟采用2m×3m独立柱矩形基础,基础埋深为地表以下2.5m。初勘阶段已查明场地设计基础底面以下6~9m处可能存在溶洞,则在详勘阶段的钻孔深度至少应为()。
在设备采购评标方法中,具有评标考虑因素全面,且可以将难以用金额表示的各项要素量化后进行比较等优点的方法是()。
根据咨询的规模,心理咨询可以分为()。
“严禁任何组织和个人向未成年人出售、出租或者以其他方式传播淫秽、暴力、凶杀、恐怖等毒害未成年人的图书、报刊、音像制品。”这反映了我国法律所规定的少年儿童合法权利中的()。
一件可能使人感到吃惊的事实是,目前不但世界粮食产量的增长速度超过了人口的增长速度,而且同世界上人均收入的增长速度相比,粮食增长速度也是较快的,甚至其他商品价格的增长速度也比不上粮食的增长速度。尽管如此,今天在全世界仍有很多人口得不到充足的粮食。据估计,由于
Istheresomethingastruth?Foragoodmanycenturies"thesearchfortruth"hasbeen【31】thenoblestactivityofthehumanmind
W
最新回复
(
0
)