首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class AA{ public: AA(){ cout
有如下程序: #include using namespace std; class AA{ public: AA(){ cout
admin
2015-07-22
59
问题
有如下程序:
#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/MjNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列关于栈的描述中错误的是
下列程序的运行结果为#include<iostream.h>template<classTT>classFF{TTa1,a2,a3;public:FF(TTb1,TTb2,TTb3){
在C++语言程序中,对象之间的相互通信通过
下述关于数据库系统的叙述中正确的是
请将下列类定义补充完整。classBase{public:voidfun(){cout<<"Base::fun"<<end;}};classDerived:publicBase{public:void
有如下函数模板定义: template<class t> T func(Tx,Ty){return x*x+y*y;} 在下列对func的调用中,错误的是
已知枚举类型定义语句为: enum Token{NAMB,NUMBER,PLUS=5,MINUS,PRINT=10}; 则下列叙述中错误的是
一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本,此虚函数又称为
下列有关数据库的描述,正确的是
下列有关内联函数的叙述中,正确的是
随机试题
用非清水压井注水泥塞时,修井液前后均必须替入适量()作隔离液。
审美活动是最具________的精神活动。
小脑病变时呈()
以下哪项是洋地黄的禁忌证
幼儿园教育工作的评价以()为主。
教育法律规范是以()保证实施的行为规则。
公安工作具有广泛的(),尤其不能离开人民群众的支持。
Guest:Oh,Ihadn’trealizedhowlateitwas.I’mafraidI’llhavetobegoing.Host:Oh,notyet.I’mjustgoingtomakesomec
有以下程序#includemain(){inti=1,j=3;printf("%d,",i++);{inti=0;i+=j*2;printf("%d,%d,",i,j);}printf("%d,%d\n",i,j)
在计算机网络中,英文缩写WAN的中文名是__________。
最新回复
(
0
)