首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
43
问题
有如下程序:
#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全国计算机二级
相关试题推荐
下列程序的输出结果为2,横线处应添加语句()。#includeusingnamespacestd;classTestClass1{public:_________
不能重载的运算符是
有下列程序:#include<iosteram.h>usingnamespacestd;classStack{public:Stack(unsignedn=10)
下列字符串中,正确的C++标识符是()。
对于派生类的构造函数,在定义对象时构造函数的执行顺序:先执行调用______的构造函数,再执行调用子对象类的构造函数,最后执行派生类的构造函数体中的内容。
由于常对象不能被更新,所以()。
C++中通常和一个运算符连用,构成一个运算符函数名的C++关键字为__________。
______是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。
派生类继承基类的方式有
软件结构是以______为基础而组成的一种控制层次结构。
随机试题
一项以医院为基础的罕见病的病例对照研究,其符合规定的病例数很少且病例的某种构成特殊,不易找到均衡的对照组,但又必须保证研究效率。选择易找到且常用对照来源为
黄酮类化合物中酸性最强的黄酮是
工作的自由时差与总时差的关系( )。
下面选项中关于建造师执业的岗位范围说法不合理的是()
国家计量规范规定应予计量的措施项目,其措施项目费的计算公式是()。
由整块巨石雕刻而成的狮身人面像所在地是四大文明古国之一的_______。
奥苏贝尔提出了课程研究的“活动分析法”。()
请利用“源数据”对话框向下图表中添加工作表中新增加的长春销售情况。(在工作表最右侧)
______Chinaismobilizedtogoallouttobuildthecountryintoapowerful,modern,socialistcountry.
Nothingcanpreventmefrom(carry)______outmyplan.
最新回复
(
0
)