首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include class A { public: A(int n=2):m_i(n){} ~A(){std::cout
有如下程序: #include class A { public: A(int n=2):m_i(n){} ~A(){std::cout
admin
2019-05-22
26
问题
有如下程序:
#include
class A
{
public:
A(int n=2):m_i(n){}
~A(){std::cout<
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;
}
private:
A m_a1;
A m_a2;
};
int main()
{
B b(5);
return 0;
}
运行后的输出结果是( )。
选项
A、2351
B、2531
C、5354
D、5534
答案
B
解析
main()函数中调用了B的构造函数,参数为5,接下来B类对象b的构造过程如下:①调用基类A的默认构造函数,构造对象b的基类部分:初始化mj为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_j的值为2,然后将m_i自减1,使得m_i的值为1。②按照B类中成员定义顺序的反顺序,首先调用m_a2的析构函数~A(),释放对象m_a2,输出m_a2.mj的值5;再调用m_a1的析构函数~A(),释放对象m_a1,输出m_a1.mj的值3。③最后调用基类A的析构函数~A(),释放b对象中的基类部分,输出m_i的值1。
由上分析,程序运行结果为:2531。故本题答案为B选项。
转载请注明原文地址:https://jikaoti.com/ti/KXA0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
A、 B、 C、 D、 C此题考查的是函数重载的概念。在C语言中,允许定义一系列函数名相同,但形参的个数和类型不完全相同的函数,即函数的重载。重载函数对返回值类型不做要求,返回值类型也不参与区分函数的重载形式
A、 B、 C、 D、 C通过调用友元函数,实现求解n!的算法。sum=5!+4!+3!+2!。
补充完整下面的类定义:constdoublePI=3.14;classCircle{//圆形物体的抽象基类protected:doubler;//半径public:Circ
A、 B、 C、 D、 C③是错误的,因为在类体内,不允许对所定义的数据成员进行初始化;其他语句构造和析构函数的定义都是正确的。
虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数,而非虚函数不支持多态调用。有如下程序:#include<iostream>usingnamespaees
若有类声明:classMyClass{public:MyClass(){cout<<1;}};执行下列语句MyClassa,b[2],*P[2];以后,程序的输出结果是A)11
针对数组定义intdata[10];,下列叙述中错误的是A)用*data可访问到数组的首元素B)用data[9]可访问到数组的末元素C)用data[10]访问数组元素会超出数组的边界D)data共有10个元素,其首元素是data[1]
下列选项中,不属于面向对象程序设计特征的是A)继承性B)多态性C)类比性D)封装性
假定int类型变量占用两个字节,其有定义intx[10]={0,2,4};,则数组x在内存中所占字节数是
A、 B、 C、 D、 Dc++语言中析构函数为符号“~”加类名,且析构函数没有返回值和参数,故前不加void关键字。所以正确的形式应该是~Myclass()。
随机试题
视神经管减压的适应证为
患者张某,女,症见腹中气聚,攻窜胀痛,时聚时散,脘闷纳呆,舌苔白腻,脉象弦缓。
治疗湿热腰痛,应首选
婴幼儿,4个月,早期萌牙,萌了几颗牙齿
与甲签订的抵押合同()。
销售企业在现金折扣实际发生时,应计人()账户核算。(19.2)
如果A注册会计师为了获取审计证据证实甲公司2012年营业收入准确性认定是否不存在重大错报。则以下实质性程序中,效果最差的是()。
()是保持企业薪酬战略方向正确,促进薪酬战略目标实现的基本保障。
青奥会:亚运会:运动员
丈夫和妻子讨论孩子上哪所小学好。丈夫认为,根据当地教育局最新的教学质量评估报告,实验小学教学质量不高。妻子却认为此项报告未必客观准确,因为撰写报告的人中有来自省府小学的人员,而实验小学在省府小学附近,两所学校有生源竞争的利害关系,因此,实验小学的教学质量其
最新回复
(
0
)