首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
35
问题
有如下程序:
#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://www.kaotiyun.com/show/Q7yp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序:#include<iostream>using namespace std;class test{private: int a;public: test(){cout<<"constructor"<<endl;} test(int a){
有如下类声明: class Foo{ int bar; }; 则Foo类的成员bar是
下列选项中,正确的C++表达式是
有以下类定义 class MyClass { private: int id; char gender; char*phone; public: MyClass():id(0),
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示学生学号的类CStudentID,但类CStudentID的定义并不完整。运行结果为:学生的学号为:200805学生名为:李伟删除学生学号为:200805
下列选项可以做C++标识符的是()。
某图书集团数据库中有关系模式R(书店编号,书籍编号,库存数量,部门编号,部门负责人),其中要求①每个书店的每种书籍只在该书店的一个部门销售;②每个书店的每个部门只有一个负责人;⑧每个书店的每种书籍只有一个库存数量。则关系模式R最高是
数据库系统的三级模式不包括
下列运算符中,不能被重载的是()。
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,此工程中含有一个源程序文件proj2.cpp。函数char*GetNum(ehar*src,ehar*buf)从src开始扫描下一个数字字符序列,并将其作为一个字符串取出放入字符串空
随机试题
美国管理学者李维特(Leavitt)认为,组织是一个多变的系统,在此系统中,至少包含着四个重要的变量,即____________、____________、____________和____________。
在工程项目管理模式中,DBB是经常被人们提及的一种模式,其含义是()
某设计院对具有爆炸危险的甲类厂房进行设计,下列防爆设计方案中,符合现行国家标准《建筑设计防火规范》(GB50016)的有()。
在商业发票上必须明确显示数量、单价、总值和贸易术语等主要内容。()
销售不知道是假冒专利的产品,并且能够证明该产品合法来源的,不构成专利侵权。()
下列规范性文件中,属于行政法规的是()。
马斯洛把完善自己、充分发挥自己的潜能、完成自身使命的需要称作()。
从所给的四个选项中,选择最合适的一个填入问号处,使之呈现一定的规律性。
UML中的【3】图的主要作用是陈述活动与活动之间流程控制的转移,其作用类似于流程图,然而与流程图不同的是其支持并行行为。
Saltisasnecessarytolifeaswater.InmanyareasofAfricapeopleoncedranktheurine(尿)ofanimalsbecausetheyhadnoot
最新回复
(
0
)