首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include<iostream> using namespace std; class XX { protected: int k; public: XX(int n=5):k(n){}; ~XX() { cout<<"XX"; } vi
有如下程序: #include<iostream> using namespace std; class XX { protected: int k; public: XX(int n=5):k(n){}; ~XX() { cout<<"XX"; } vi
admin
2016-10-28
17
问题
有如下程序:
#include<iostream>
using namespace std;
class XX
{
protected:
int k;
public:
XX(int n=5):k(n){};
~XX()
{
cout<<"XX";
}
virtual void f()const=0;
};
inline void XX::f()const
{
cout<<k+3;
};
class YY:public XX
{
public:
~YY()
{
cout<<"YY";
}
void f()const
{
cout<<k-3;XX::f();
}
};
int main()
{
XX&p=*new YY;
p.f();
delete&p;
return0;
}
执行上面的程序将输出( )。
选项
A、28XX
B、28YYXX
C、33XX
D、-33XXYY
答案
A
解析
类YY公有派生于类XX,派生类对象可以替代基类对象向基类对象的引用进行赋值初始化,XX &p=*new YY语句定义了XX对象p引用,并用YY对象初始化,p并不是YY对象的别名,是xx基类对象的别名,故先调用基类XX的构造函数将k初始化为5,p.f()首先输出k=3即2,然后调用XX::f()输出k+3即8,delete&p删除p,调用XX的析构函数输出“XX”。
转载请注明原文地址:https://kaotiyun.com/show/KONp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列运算符中哪些是不能够被重载的?
下面描述中,符合结构化程序设计风格的是______.
对于派生类的构造函数,在定义对象时构造函数的执行顺序为:先执行调用______的构造函数,再执行调用子对象类的构造函数,最后执行派生类的构造函数体中的内容。
C++语言中规定函数的返回值的类型是由()。
决定C++语言中函数的返回值类型的是()。
下列程序段的输出结果是#include<iostream.h>voidfun(int*x,int*y){cout<<*x<<*y;*x=3;*y=4;
下列叙述中错误的是()。
有如下的类模板定义:template<typenameTYPE>classMyClass{TYPEn;public:MyClass(TYPEk);
一个关系数据库文件中的各条记录()。
随机试题
每连续生产不多于150根防腐管或不同原材料进货批次、生产条件与工艺条件未发生变化时,可进行一次型式检验。
扩张型心肌病左、右心室同时衰竭时,与临床症状和体征最有关的因素是
此时进行的胎心监护属于哪种类型( )出现频繁晚期减速,最佳处理方法是( )
防震缝最少应设多少道?
下列关于经济周期对行业风险影响的表述正确的是()。
贷款风险的预警信号系统中,关于财务状况的信号包括()
儿童心理发展的年龄特征是指儿童在每个年龄阶段形成并表现出来的()儿童心理特征。
无过错责任原则[华侨大学2018年研;北理2008年研]
SexChangeSurgeryGuidelinesDraftedChinaissettoissueitsfirstclinicalguidelineonsex-changesurgery,accordingto
A—offerB—bargainC—sampleD—contractE—insuranceF—shipment
最新回复
(
0
)