首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
25
问题
有如下程序: #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全国计算机二级
相关试题推荐
根据下面的主程序,完成类的一种构造函数的最简单形式。#include<iostream.h>classbase{private:intnum;public:【 】;};voidmain(){basetry
下列叙述中正确的是
关于构造函数A()的拷贝构造函数正确的是()
如果一个模板声明列出多个参数,则多个参数之间必须使用______隔开,每个参数都必须重复使用关键字______。
在程序设计阶段应该采取________和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。
在类体系中访问一个虚函数时,应使用指向______的指针或对基类类型的引用,以满足运行时多态性的要求。
下列语句中,输出与众不同的是
数据库概念设计中由分散到集中的设计方法是
常用的软件结构设计工具是结构图(SC),也称程序结构图。其中,用矩形表示______,用带空心圆的箭头表示传递的是数据。
下列字符串中,正确的C++标识符是()。
随机试题
简述完善以宪法为核心的中国特色社会主义法律体系的具体措施。
营造了一个“梦一般的凄魄迷茫的审美意境”的诗作是()
A.80%B.72%~78%C.75%D.65%E.55%~65%胎儿体液占体重的百分比为
使用链霉素出现过敏反应,可用下列哪种药治疗
决算的审查内容不包括()
以下心理学家属于认知主义学习理论流派的是()。
是不是独生子与孩子的社会能力发展几乎毫无关系。最近对30名独生孩子与35名第一胎的孩子一直到3岁的跟踪研究发现,这两组孩子对其同代人、其家长以及其他大人的行为非常相似。下面哪项如果正确,最能削弱上述结论?
以下哪些不属于用户身份的假冒?()
计算机是一种能快速、高效、自动地完成( )的电子设备。
Acontractisanagreementbetweentwoormorepeopleinwhichonepersonagreestodosomethingbyaspecifieddateinreturnf
最新回复
(
0
)