首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
49
问题
有如下程序:
#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:_________
通过使用new和delete两个运算符进行的分配为【】存储分配。
以下程序的输出结果是#include<iostream>usingnameSpacestd;intmain(){cout.fill(’*’);cout.width(5);cou
若有以下定义和语句,则对w数组元素的非法引用是______。intw[2][4],(*pw)[4];pw=w;
下面关于构造函数和析构函数的描述中,错误的是()。
不能重载的运算符是
下列字符串中,正确的C++标识符是()。
要定义数组A,使得其中每个元素的数据依次为:3、9、4、8、0、0、0,错误的定义语句是
在结构化程序设计中,模块划分的原则是A)各模块应包括尽量多的功能B)各模块的规模应尽量大C)各模块之间的联系应尽量紧密D)模块内具有高内聚度,模块间具有低耦合度
随机试题
下列关于苯海索的叙述,错误的是
髀枢至膝中的骨度分寸是()
下列对项目管理组织的建立步骤排序正确的是()。①工作岗位和工作职责确定;②人员配置;③确定合理的项目目标;④确定组织目标和组织工作内容;⑤确定项目工作内容
硅酸盐水泥的最低强度等级是()。
按建标[2003]206号文的规定,下列各项中属于规费的是()。
马克思指出的实现人的全面发展的唯一方法是()。
下列关系中,可以在同一机关担任有直接上下级领导关系的职务的是()。
整个印度变成英国的殖民地在()
战后垄断资本主义通过新殖民主义对发展中国家进行侵略与掠夺的主要形式有( )
InterculturalLearningManyteachersmaywonder"WhatamIactuallydoing?"sometimes.Itdoesn’tseemenoughtoteachgramm
最新回复
(
0
)