首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Base { public: void funlO{cout
有如下程序: #include using namespace std; class Base { public: void funlO{cout
admin
2020-04-07
19
问题
有如下程序:
#include
using namespace std;
class Base
{
public:
void funlO{cout<<“BasCn”;)
virtual void fun20{cout<<“BasCn”;)
};
class Derived:public Base
{
public:
void funlO{cout<<”Derivedha”;)
void fun2(){cout<<”DerivedLq”;)
);
void f(Base&b){b.funl0;b.fun2();)
int main()
{
Derived obj;
f(obj);
return 0:
}
执行这个程序的输出结果是( )。
选项
A、Base
Base
B、Base
Derived
C、Derived
Base
D、Derived
Derived
答案
B
解析
此题考查的是虚函数的概念。在C++语言中,一个派生类的对象可以被它的任何一个基类的指针所指向,若基类和派生类中存在一模一样的成员函数。那么通过该基类指针调用这样的成员函数时,若这个成员函数被定义成虚函数,那么就调用派生类中的;否则就调用基类中的。本题中,在f()函数中,形参b是一个基类的引用,它引用的是主函数中定义的派生类对象obi,所以在调用fun()时,运行的是基类的版本,而fun2()运行的是派生类的版本。
转载请注明原文地址:https://kaotiyun.com/show/U38p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列叙述中正确的是()。
表达式x.operator+(y.operator++(0))还可以写成【】。
有如下函数模板声明:template<typenameT>TMax(Ta,Tb){return(a>=b)?a:b;}下列对函数模板Max的调用中错误的是______。
有如下函数模板定义:template<typenameT1,typenameT2typenameT3>T2plus(T1t1,T3t3){returnt1+t3;}则以下调用中正确是
在MyClass类的定义中,对赋值运算符:进行重载。请将画线处缺失的部分补充完整。【】MyClass::operator=(constMyClass&rhs){if(this==&rhs)return*this
通常拷贝构造函数的参数是
下列语句的输出结果cout<<strlen("\t\"\065\xff\n");
运算符重载是对已有的运算符赋予多重的含义,所以()。
C++中的类有两种用法:一种是类的实例比,即生成类的对象,并参与系统的运行;另一种是通过()派生出新的类。
能保证对所有的参数能够结束的递归函数是
随机试题
对焊接过程中使用的定位器有什么技术要求?
下列哪个不属于T细胞亚群
产妇23岁,孕1产1,妊娠39周头位顺产,产后恢复良好,以下产后检查时间错误的是
锅炉受热面施工中横卧式组合方式的缺点是()。
英译汉“b/l;l/c”最确切的翻译是( )。
《证券公司监督管理条例》规定,证券公司应当自每一会计年度结束之日起()个月内,向中国证监会报送年度报告;自每月结束之日起7个工作日内,报送月度报告。
动态资产配置策略的主要利润机制是()。
Hitchhiking(搭车旅游)WhenIwasinmyteens(十几岁)and20s,hitchhikingwasamainformoflong-distancetransport.Thekindnessor
Wheredoesthisconversationtakeplace?
MybrotherlikespopmusiC.SohecanwatchCCTVChannel3thisafternoon.MymotherlikeswatchingTVplays.Shewantstowatch
最新回复
(
0
)