首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Base { public: void fun1(){cout
有如下程序: #include using namespace std; class Base { public: void fun1(){cout
admin
2020-04-07
36
问题
有如下程序:
#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://www.kaotiyun.com/show/j38p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
在析构函数中调用虚函数时,采用【】联编。
以下程序的执行结果是_____。#include<iostream.h>#include<iomanip.h>voidmain(){cout.fill(’*’);cout.width(10);
一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。
有如下程序#include<iostream>usingnamespacestd;classbase{public:virtualvoidf1(){cout<<"F1
若有以下程序:#include<iostream>usingnamespacesstd;classA{public:A(){}A(inti){
若有说明语句chara[]="Itismine";char*p="Itismine";则以下不正确的叙述是()。
运算符重载是对已有的运算符赋予多重的含义,所以()。
在关系运算中,【】运算是对两个具有公共属性的关系所进行的运算。
下列选项,不正确的是
A、 B、 C、 D、 B数据的逻辑结构是数据间关系的描述,它仅抽象地反映数据间的逻辑关系,并不管其在计算机中的存储方式。数据的逻辑结构分为线性结构和非线性结构。若各数据元素之间的逻辑关系可以用一个线性序列简
随机试题
学习社会强调四种基本的学习,即__________、学会做事、学会共同生活和学会生存。
Hisanxiety______thegamerenderedhimagainsttherule.
口腔健康调查的工作步骤不包括
关于前臂双骨折的治疗,下列说法哪项是错误的()
2003年初,某开发商欲在城北城市建设用地规划圈内的一块“城中村”土地上建设商品房。为了不耽误商机,开发商直接与该村委会订下意向协议,愿意支付补偿费用,并先采取租用的方式启动项目。2004年初,土地被征收为国有后,开发商通过正常出让程序获得土地使用权。20
函数ex展开成为x-1的幂级数是:
为使建筑产生活跃、醒目的气氛,富有活力,常采用()手法。
银行对账的具体步骤包括()。
开:关
物上请求权[中山大学2011年研;南京大学2009年研]
最新回复
(
0
)