首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
41
问题
有如下程序:
#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、 C只有在创建对象时才会调用类的构造函数,在定义指针时不会调用构造函数,只有给指针new一个地址时会调用构造函数,所以本程序中一共生成了6个Point对象(A,B,C,newPoint[
A、 B、 C、 D、 C派生类在公有派生和保护派生两种方式下,可以访问基类的保护成员。虚基类也可以被实例化,虚函数如果在派生类中不被重新定义,则直接被派生类继承。
A、 B、 C、 D、 C采用intA[]={3,4,9,8}定义数组A,则A中只有4个元素,而题干要求的是7个元素,A[4]、A[5]、A[6]3个元素就不存在。
下列程序的输出结果为:Ohjectid=0Objectid=1请将程序补充完整。#include<iostream>usingnamespaeestd;classPoint{
下列程序的输出结果是______。#include<iostream>#include<cstring>usingnamespacestd;voidfun(constchar*S,char&C){e=
若有类声明:classMyClass{public:MyClass(){cout<<1;}};执行下列语句MyClassa,b[2],*P[2];以后,程序的输出结果是A)11
按照标识符的要求,下列选项中,()符号不能组成标识符。
随机试题
关于登记立案的规定,下列哪些选项是正确的?()
关于工程项目成本管理的说法,正确的有()。
()是指建筑构件按时间一温度标准曲线进行耐火试验,从受到火的作用时起,到失去支持能力或完整性或失去隔火作用时止的这段时间。
当企业收到预付款时,正确的会计处理是()。
只要存在商品经济,就必然存在的经济规律是()。
普通租售型商务写字楼标准层有效使用率等于()面积除以标准层面积。
肖像画
在教育的社会功能中,与人类教育共始终的基本功能是()。
学生证:学生
【B1】______【B17】______
最新回复
(
0
)