首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
24
问题
有如下程序: #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://jikaoti.com/ti/MIt0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
根据下列程序的执行结果,可以断定划线部分的修饰符应为【 】。执行结果:i9afootballiscreated.afootballiscreated.i=10afootballisdestroyed.afootballis
下列关于虚基类的描述中错误的是
已知一个运行正常的的程序中有下面两个语句: int *p1, *p2=&a; P1=b由此可知,变量a和b的类型分别是
一个类的友元函数能够访问该类的
下列叙述中正确的是
有以下程序段,其输出的结果是______。intx,y,z;X=y=z=0;++x‖++y&&++z;cout<<x<<","<<y<<","<<z<<endl;
已知doublevar;是文件F1.CPP中的一个全局变量定义,若文件F2.CPP中的某个函数也需要访问,则在文件F2.CPP中var应说明为______。
以下都是C++语言标识符的是()
下列有关运算符重载的叙述中,正确的是()。
下列语句段将输出字符’*’的个数为inti=100;while(1)i--;if(i==0)break;cout<<’*’;}
随机试题
IntheUnitedStatesandCanada,aprom,shortforpromenade,isaformaldance,orgettingtogetherofhighschoolstudents.It
设,求y’.
脘痞,嗳腐吞酸,多见于( )。
一年轻患者诊断为急性泌尿系统感染,用复方新诺明治疗,为减轻其肾脏损害可选用的药物为( )
A.苏合香B.麝香C.远志D.蟾酥E.牛黄
罗红霉素是
按照《关于禁止商业贿赂行为的暂行规定》,下列属于商业贿赂的行为是()。
既属于监理工程师应遵守的职业道德,又属于监理工程师义务的是( )。
目前,我国新能源汽车推广的战略方向是在公共交通领域进行示范应用,截至2012年12月,全国约有27800多辆新能源汽车,其中80%是公交车,但是汽车生产商认为,新能源汽车在全社会的推广还比较艰难,短期内难以大规模普及。以下哪项如果为真,不能支持厂商的观点?
王安石刚开始主持变法时官职是()。
最新回复
(
0
)