首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include<iostream> using namespace std; class Base { public: void funl(){cout<<"Basea";} v
有如下程序: #include<iostream> using namespace std; class Base { public: void funl(){cout<<"Basea";} v
admin
2017-10-17
19
问题
有如下程序: #include<iostream> using namespace std; class Base { public: void funl(){cout<<"Basea";} virtual void fun2(){tout<<"Base\n";} }; class Derived:public Base { public: void funl() {cout<<"Derived\n"; } void fun2() {cout<<"Derived\n"; } }; void f(Base& b) {b.funl(); b.fun2(); } int main() { Derived obj; f(obj); return 0; } 执行这个程序的输出结果是
选项
A、Base Base
B、Base Derived
C、Derived Base
D、Derived Derived
答案
B
解析
本题考查的是虚函数的概念。在C++中,一个派生类的对象可以被它的任何一个基类的指针所指向(或被基类类型的引用所引用)。若基类和派生类中存在一模一样的成员函数,那么通过该基类指针(或引用)调用这样的成员函数,究竟是应该调用基类中的还是调用派生类中的呢?答案是:若这个成员函数被定义成虚函数,那么就调用派生类中的;否则会调用基类中的。本题是一个典型的例子,funl()是一般成员函数,fun2()是虚函数,而且在派生类与基类中都存在两个这样的函数。在f()函数中,形参b是一个基类的引用,它引用的是主函数中定义的派生类对象obi。所以在调用fun()时,运行的是基类的版本,而fun2()运行的是派生类的版本。故选项 B中的结果是正确的。
转载请注明原文地址:https://kaotiyun.com/show/KWAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
请阅读以下程序 main( ) { int x=1.y=0, a=0, b=0: switch(x) { case 1:
下列关于虚函数与函数重载区别的叙述中不正确的是
下面对静态数据成员的描述中,正确的是()
以下定义数组中错误的是()
下列关于虚函数的描述中,正确的是()。
已知类Sample中的一个成员函数说明如下:voidSet(Sample&a);其中,Sample&a的含意是()。
在双目运算符中需要声明其右操作数时,完成的是【 】重载,而需要声明全部操作数时,完成的是【 】重载。
数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是
按照标识符的要求,下列选项中,()符号不能组成标识符。
随机试题
患者,男性,76岁。吸烟50年,近期出现了进食哽咽,甚至出现喝水呛咳,患者来院就诊,诊断为食管癌,与食管癌关系最为密切的食品是
采用燃烧分解法测定有机物中碳和氢含量时,常用的吸水剂是()。
依据《国务院关于预防煤矿生产安全事故的特别规定》,被责令停产整顿的煤矿经()签字,并经有关煤矿安全监察机构审核同意,报请有关地方人民政府主要负责人签字批准,方可恢复生产。
企业财务会计报告的编制依据应当统一,但向不同的会计信息使用者提供的财务会计报告,其编制依据允许有差别。()
莫干山素有“清凉世界”之美誉,其“四优”为()。
英国思想家威廉·葛德文说“一个人习惯于说他明明知道的假话,或者掩盖他明明知道的真相,必定处于一种不断堕落的状态之中”该句话的意思是()。
货币的职能主要有()。
以下有关世界贸易组织(WTO)的表述中,不正确的一项是()。
下面各项中不属于“问题解决”特点的是()
Cultureshockisanoccupationaldiseaseforpeoplewhohavebeensuddenlytransplantedabroad.Likemostillnesses,ithasits
最新回复
(
0
)