首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #inc1ude <iostream> using namespace std; class Base { public: void funl(){cout<<"Base\n";} vi
有如下程序: #inc1ude <iostream> using namespace std; class Base { public: void funl(){cout<<"Base\n";} vi
admin
2019-06-12
59
问题
有如下程序:
#inc1ude <iostream>
using namespace std;
class Base
{
public:
void funl(){cout<<"Base\n";}
virtual void fun2(){cout<<"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
B、Base Base Derived
C、Derived
D、Derived Base Derived
答案
B
解析
此题考查的是虚函数的概念。在C++语言中,一个派生类的对象可以被它的任何一个基类的指针所指向,若基类和派生类中存在一模一样的成员函数。那么通过该基类指针调用这样的成员函数时,若这个成员函数被定义成虚函数,那么就调用派生类中的;否则就调用基类中的。本题中,在f()函数中,形参b是一个基类的引用,它引用的是主函数中定义的派生类对象obj,所以在调用funl0时,运行的是基类的版本,而fun2()运行的是派生类的版本。
转载请注明原文地址:https://kaotiyun.com/show/OT8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若要把函数voidfun()定义为TestClass的友元函数,则应该在类TestClass的定义中加入的语句是()。A)voidfriendfun()B)friendfun()C)frien
下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。请填空。#include<iostream.h> #include<string.h>main(){chara[]="clanguag
面向对象程序设计思想的主要特征中不包括
设置虚基类的目的是()。
存取指针所指的值时,采用的运算符是
下列字符串中,正确的C++标识符是()。
内联函数是通过【】来实现的,因此内联函数是真正的函数。
设有如下关系表:则下列操作中正确的是
继承的方式有公有继承、私有继承和______3种。
C++语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取【】方式。
随机试题
试述前列腺癌的组织学亚型。
下列计量器具中__________属于实物量具。
关于急性全身粟粒性结核病的叙述,错误的是
促胰液素引起胰腺分泌胰液的特点是
下列选项中,不属于路肩实测项目的是()。
甲公司2014年销售收入为900000元,净利润为36000元,发放了股利20000元。2015年销售收入为1000000元,净利润为40000元,发放了股利20000元,年末简化资产负债表如下:假定销售净利率与股利支付率仍保持基期的水平,若该企业经营
甲公司为上市公司。2×16年2月,甲公司收购乙公司80%的股权,完成非同一控制下的企业合并,相关资料如下:(1)收购定价的相关约定股权收购协议约定转让价款区间为6000万元至18000万元,最终的转让价款与乙公司在未来两年(2×16至2×17年)实现的业
搜索引擎是Internet上的一个【 】。
TomandTimaretwins.Theylookthesame.Theystudyinthesameclass,andMissLiistheirChineseteacher.Tomworkshardat
Oneofthemostfascinatingquestionsabouthumanbehavioriseachpersonisdifferentfromallothers.Theanswertothisquest
最新回复
(
0
)