首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include<iostream> #include<string> using namespace std; class Publication{ public: Publication(string n="Unknown"):name(
有如下程序: #include<iostream> #include<string> using namespace std; class Publication{ public: Publication(string n="Unknown"):name(
admin
2021-02-22
25
问题
有如下程序:
#include<iostream>
#include<string>
using namespace std;
class Publication{
public:
Publication(string n="Unknown"):name(n){}
const string getName()const{return name;}
virtual const string getType()const{return"Unknown";}
private:
string name;
};
class Book:publicPublication{
public:
Book(string name):Publication(name){}
virtual const string getType()const{return"Book";}
};
void showPublication(Publication&p){
cout<<p.getType()<<":"<<P.getName()<<endl;
}
int main(){
Book book("C++");
showPublication(book);
return0;
}
运行时的输出结果是( )。
选项
A、Book:C++
B、Book:Unknown
C、Unknown:C++
D、Unknown:Unknown
答案
A
解析
C++中,多态调用必须满足两个条件:被调用的成员函数是虚函数;必须通过基类类型的引用或指针进行函数调用。
题意的main()函数中首先定义一个。Book类对象,对象名为book,在构造book对象时,程序过程如下:首先调用Book类的构造函数.传入参数“C++”,在构造函数执行函数体前,再调用基类Publication的默认构造函数:传入字符串“C++”,基类构造函数在成员初始化列表中,使用传入的参数“C++”为name赋值;此时继承于基类的成员:name存放字符串“C++”。
然后main()函数调用showPublication()函数,传入book对象:showPublication()函数接收Publication类对象的引用p,然后调用p.getType()和p.getName()输出。由于getType()成员函数属于虚函数,p属于基类对象的引用,所以通过p调用getType()函数满足多态调用,执行p实际引用对象类型的getType(),即Book类的getType(),输出:“Book”;而getName()不是成员函数,所以不满足多态调用,执行基类的成员函数getName(),输出name:“C++”。综上,程序输出:Book:C++。本题答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/Q7yp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列关于派生类构造函数和析构函数的说法中,错误的是
有如下程序: #include<iostream> using namespace std; class BASE { public: ~BASE(){cout<<"BASE";} }; cl
以下叙述正确的是
下列数据模型中,具有坚实理论基础的是
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序,使该程序输出倒9×9口诀。程序分析:分行与列考虑,共9行9列,设置两个变量i和j,i控制行,j控制列。程序运行结果如下:1*9=9
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成列操作,将类的定义补充完整,实现以下功能:(1)完成CBook类构造函数,对整型变量ID和作者Author进行赋值,请在注释//********1*****
使用VC6打开考生文件夹下的源程序文件modi2.epp。阅读下列函数说明和代码。函数show0的功能是将1、2、3、4四个数字,组成互不相同且无重复数字的四位数,并将这些数输出到屏幕,输出的内容如下:123412431324134214
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。DataList的重载运算符函数operator+,其功能是求当前数据表与另一个相同长度的数据表之和;即它返回一个数据表,其每
下列字符串中不能作为C++标识符使用的是()。
随机试题
( )是指公务员享有对机关及其领导人工作中的缺点和不足提出批评、对改进机关及其领导人的工作提出建设性意见的权利。
所谓发布网站,就是把网站中的内容传到Web服务器上。
求空间曲线,在点(1,1)处的切线方程和法平面方程.
A.肝细胞大片坏死B.肝细胞结节状再生C.二者皆有D.二者皆无急性普通型肝炎
井筒在施工时可能会出现涌水,下列关于工作面排水的说法正确有()
土质改良是防治管涌和流沙的基本措施之一,常用的方法有()。
需要办理注销税务登记的情形有()。
教育的“心理起源说”认为教育起源于()
近代法国著名科学家法拉第,发现了电磁感应规律。有一种看法是,由于他没有用最科学最严密的语言表达出来,因此一直没有得到科学界的承认,直到麦克斯韦完整地表述了这一规律,才得到人们的正式承认。以下哪项,从上述题干中推出最为恰当?
Evenintheabsenceofdefinitivescienceonthepotentialhazardssurroundingtheuseofelectroniccigarettes,regulationsare
最新回复
(
0
)