首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Base { public: void fun1(){cout
有如下程序: #include using namespace std; class Base { public: void fun1(){cout
admin
2020-04-07
33
问题
有如下程序:
#include
using namespace std;
class Base
{
public:
void fun1(){cout<<"Baseha";}
virtual void fun2(){cout<<"Base\n";}
};
class Derived:public Base
{
public:
void fun1(){cout<<"Derivedha";}
void fun2(){cout<<"Derivedha";}
};
void f(Base&b){b.fun1();b.fun2();}
int main()
{
Derived obj;
f(obj);
return 0;
}
执行这个程序的输出结果是( )。
选项
A、Base
Base
B、Base
Derived
C、Derived
Base
D、Derived
Derived
答案
B
解析
此题考查的是虚函数的概念。在C++语言中,一个派生类的对象可以被它的任何一个基类的指针所指向,若基类和派生类中存在~模一样的成员函数。那么通过该基类指针调用这样的成员函数时,若这个成员函数被定义成虚函数,那么就调用派生类中的;否则就调用基类中的。本题中,在f()函数中,形参b是一个基类的引用,它引用的是主函数中定义的派生类对象obj,所以在调用fun1()时,运行的是基类的版本,而fun2()运行的是派生类的版本。
转载请注明原文地址:https://kaotiyun.com/show/j38p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序#include<iostream.h>voidmain(){floatx=2.O,y;if(x<O.0)y=0.0;elseif
有如下函数模板:template<typenameT,typenaineU>Tcast(Uu){returnu;}其功能是将U类型数据转换为T类型数据。已知i为int型变量,下列对模板函数cast的调用中正确的是
若有以下程序:#include<iostream>usingnamespacesstd;classA{public:A(){}A(inti){
下面对静态数据成员的描述中,正确的是
在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是
下列叙述正确的是()。
如果表达式y*x++中,“*”是作为成员函数重载的运算符,“++”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为
数据库模型提供了两个映像,它们的作用是()。
一个()允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回值能取任意类型。
tb此题考查的是对象的定义。对象的定义格式如下:类名对象名(参数表);所以题目中的tb是对象名标识符,而ta被定义成类MA的指针,故空格处应填tb。
随机试题
()是指通过隔绝空气,消除助燃物,使燃烧区内的可燃物质无法获得足够的氧化剂助燃,从而使燃烧停止。
特应性角结膜炎晚期并发症不包括
下列哪项不属于"十八反"的药物()
1803年,美国联邦最高法院马歇尔大法官在“马布里诉麦迪逊”一案的判决中这样写道:“马布里有权利得到委任状”拒发委任状侵犯了他的权利,他的国家的法律为此对他提供救济。同时他又判决最高法院无权发出法院强制执行令。“合众国宪法的词语确认和强化了这一应成为所有成
房地产经纪业务中的主要风险有()。
在教学活动中把教书和育人有机地结合起来。这遵循了()的教学原则。
韩国广播公司(KBS)
“对事物从客体的或直观的形式去理解,而不是把它们当做人的感性活动,当做实践去理解。”这是
【F1】We’removing;intoanotherera,asthetoxiceffectsofthebubbleanditsgraveconsequencesspreadthroughthefinancials
TheGrowthofCulturalConsciousness1.ThefirststageNounderstanding:【T1】______ofthenewculture【T1】______2.Thesecondst
最新回复
(
0
)