首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #inc1ude <iostream> using namespace std; c1ass Base { public: void funl(){cout<<"Base\n";} vi
有如下程序: #inc1ude <iostream> using namespace std; c1ass Base { public: void funl(){cout<<"Base\n";} vi
admin
2019-06-04
30
问题
有如下程序:
#inc1ude <iostream>
using namespace std;
c1ass Base
{
public:
void funl(){cout<<"Base\n";}
virtual void fun2(){cout<<"Base\n";}
};
c1ass Derived: public Base
{
public:
void fun1(){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++语言中,一个派生类的对象可以被它的任何一个基类的指针所指向,若基类和派生类中存在一模一样的成员函数。那么通过该基类指针调用这样的成员函数时,若这个成员函数被定义成虚函数,那么就调用派生类中的;否则就调用基类中的。本题中,在f0函数中,形参b是一个基类的引用,它引用的是主函数中定义的派生类对象obj,所以在调用fun10时,运行的是基类的版本,而fun20运行的是派生类的版本。
转载请注明原文地址:https://jikaoti.com/ti/m5A0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
A、 B、 C、 D、 D在C++中,数组的下标为0~Ⅳ-1,如果定义数组指针,则指针刚开始时是指向数组的头元素
A、 B、 C、 D、 C虚函数是在类的声明中使用virtual关键字来限定的成员函数,在成员函数实现时不能再使用virtual关键字进行限定。派生类中的虚函数必须和基类中的虚函数的形参个数、形参类型、返回值
下列选项中,不属于面向对象程序设计特征的是A)继承性B)多态性C)类比性D)封装性
若要对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是()。A)operatorlong()const;B)operatorlong(bigNumber);C)longoperatorlong()
以下哪个不是C++语言中的有效标识符?
下列选项中不全是c++语言关键字的是
下列符号中可以用作C++标识符的是()。
随机试题
灌浆时水泥、砂子、石子的混合比(重量比)为()。
远程过程调用发展起来的基础是()
足厥阴肝经起始穴是
血清淀粉酶测定主要用于诊断的疾病是
在外感咳嗽中,病程缠绵,久则导致肺阴亏耗的是
维生素D缺乏性佝偻病时由骨样组织增生所致的骨骼改变为()
设矩阵,则A与B().
EconomicReforminChinaMoreUSsinologistshaveexpressedconfidenceinChina’seconomicreformandtheprospectsforChi
5WeekstoaStress-FreeLife[A]Whowillyoubethisyear?Willyoubeabetter,wiserversionofyourselfbythetimethecal
A、Warmandhumid.B、Coldandhumid.C、Warmanddry.D、Coldanddry.D选项均为天气形容词表明,本题考查西藏的气候状况。由对话中提到的Nohumidity和coldinwinter可知,
最新回复
(
0
)