首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include<iostream> class A { public: A(int n=2):m_i(n){} ~A(){std::cout<<m_i;} protected: int m_i; }; class B:public A {
有如下程序: #include<iostream> class A { public: A(int n=2):m_i(n){} ~A(){std::cout<<m_i;} protected: int m_i; }; class B:public A {
admin
2017-07-28
63
问题
有如下程序:
#include<iostream>
class A
{
public:
A(int n=2):m_i(n){}
~A(){std::cout<<m_i;}
protected:
int m_i;
};
class B:public A
{
public:
B(int n):m_a2(n),m_al(m_i+1){}
public:
~B()
{
std::cout<<m_i;
--m_i;
}
private:
A m_a1;
A m_a2:
};
int main()
{
B b(5);
return0;
}
运行后的输出结果是( )。
选项
A、2351
B、2531
C、5354
D、5534
答案
B
解析
main()函数中调用了B的构造函数,参数为5,接下来B类对象b的构造过程如下:
①调用基类A的默认构造函数,构造对象b的基类部分:初始化m_i为2。
②按照B类中成员的定义顺序,使用成员初始化列表初始化两个A类成员:首先执行m_a1(m_i+1),m_i为基类A中的成员,此时值为2,调用A类的默认构造函数,初始化m_a1.m_i为3;然后执行m_a2(n),调用A类的默认构造函数,初始化m_a2.m_i为5。接着main()执行return语句,此时对象b需要调用析构函数进行释放,释放过程如下:
①首先运行B类的析构函数~B(),输出m_i的值为2,然后将m_i自减1,使得m_i的值为1。
②按照B类中成员定义顺序的反顺序,首先调用m_a2的析构函数~A(),释放对象m_a2,输出m_a2.m_i的值5;再调用m_a1的析构函数~A(),释放对象m_a1,输出m_a1.m_i的值3。
③最后调用基类A的析构函数~A(),释放b对象中的基类部分,输出m_i的值1。
由上分析,程序运行结果为:2531。故本题答案为B选项。
转载请注明原文地址:https://www.kaotiyun.com/show/OFAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
在面面对泵方法中,一个对象请求另一对象为其服务的方式是通过发送【 】实现。
假定变量m定义为int m=7;则定义变量p的正确语句为( )。
软件工程管理的具体内容不包括对( )管理。
语句cout<<(a=2)&&(b=-2);的输出结果是
下列程序的输出结果为2,请将程序补充完整。#include<iostream>usingnamespacestd;classBase{public:______voidfun(){cout<<
阅读下列程序:#include<iostream.h>voidfun(intn){intx(5);staticinty(10);if(n>0){++x;++y;cou
程序的3种基本控制结构是()。
下面程序错误的语句是①#include<iostream.h>②voidmain(0③{④int*p=newint[1];⑤p=9;⑥cout<<*p<<end1;
对于语句cout<<endl<<x;中的各个组成部分,下列叙述中错误的是
一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是
随机试题
下列关于盈亏临界点的表述中,错误的有()。(2015年学员回忆版)
功效养阴润肺,清心安神的药物是()
下列对于测试法的特征描述中,正确的是()。
居民消费价格指数中的权数当前仍根据()来确定。
垄断可能会比竞争更可取,这是因为()。
简述思维的类型(至少三种分类)。
根据以下资料回答111-116题2008年A省粮食作物播种面积2499.94千公顷,比上年增长0.8%。糖蔗种植面积136.04千公顷,下降1.2%;油料种植面积323.87千公顷,增长4.3%;蔬菜种植面积1112.63千公顷,增长4.5%。2
【托勒密王朝】(PtolemaicDynasty)东北师范大学2017年历史学综合真题
某商品的需求量Q对阶格的弹性为η=pln3,已知该商品的最大需求量为1200,则需求量Q关于价格P的函数关系式为()。
在数据库系统出现系统故障后进行恢复时,对于事务T,如果在日志文件中有BEGINTRANSACTION记录,也有COMMIT记录,但其对数据的修改没有写到数据库中,则数据库管理系统处理这种事务时应执行的操作是【12】。
最新回复
(
0
)