首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
89
问题
有如下程序:
#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://kaotiyun.com/show/F68p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
A、 B、 C、 D、 Apb作为基类指针,可以指向派生类对象,但是它只能访问基类的成员函数,而不能访问派生类的成员函数,所以pb->show();访问的是基类的show()函数,故打印10,20。
A、 B、 C、 D、 C采用intA[]={3,4,9,8}定义数组A,则A中只有4个元素,而题干要求的是7个元素,A[4]、A[5]、A[6]3个元素就不存在。
A、 B、 C、 D、 A由于线性表采用的是顺序存储方式,用存储单元的邻接性体现线性表元素间的一维顺序关系,因此对线性表进行插入和删除运算时,可能需要移动大量的结点,以保持这种物理和逻辑的一致性。对于选项A)
下列选项中不属于软件生命周期开发阶段任务的是()。
有如下定义:classMA{intvalue;public:MA(intn=0):value(n){}};MA*ta,tb;其中MA类的对象名标识符是_____
A、 B、 C、 D、 Dc++语言中析构函数为符号“~”加类名,且析构函数没有返回值和参数,故前不加void关键字。所以正确的形式应该是~Myclass()。
C++语言中类的定义的结束声明的符号是
下列符号中可以用作C++标识符的是()。
随机试题
抬举性心尖冲动最常见于()
潜在的健康问题应如何陈述
手太阴肺经的起止穴分别是手少阳三焦经起止穴分别是
使胃蛋白酶原转变为胃蛋白酶的激活物是
肝硬化患者因腹泻发生昏迷,查血钾2.6mmo/L,血钠136mmol/L,血氯化物110mmol/L,血氨158.7μmol/L,血pH7.40。宜选用的药物是
(2011)燃气调压装置可以设在()。
用友报表系统中,报表关键字是在报表“格式”状态下设置的。()
下列各项中,属于债务重组日债务人应计入重组后负债账面价值的有()。
对于银行业金融机构重组失败的,国务院银行业监督管理机关可以决定终止重组,由()按照法律规定的程序依法宣告破产。
Painting,theexecutionofformsandshapesonasurfacebymeansofpigment,hasbeen【C1】______practicedbyhumansforsome20,
最新回复
(
0
)