首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序#include <iostream>using namespace std;class base{public: virtual void f1() { cout<<"F1Base "; } virtual
有如下程序#include <iostream>using namespace std;class base{public: virtual void f1() { cout<<"F1Base "; } virtual
admin
2010-12-16
51
问题
有如下程序#include <iostream>using namespace std;class base{public: virtual void f1() { cout<<"F1Base "; } virtual void f2() { cout<<"F2Base "; }};class derive: public base{ void f1() { cout<<"F1Derive "; } void f2( int x ) { cout<<"F2Derive "; }};int main(){ base obj1, * p; derive obj2; p = & obj2; p -> f1(); p -> f2(); return 0;} 执行后的输出结果是
选项
A、F1Derive F2Base
B、F1Derive F2Derive
C、F1Base F2Base
D、F1Base F2Derive
答案
A
解析
本题主要考查C++中虚函数机制及其继承过程中的要点。虚函数在基类中加关键字virtual声明,在派生类中重新定义;如果派生类没有覆盖虚函数,则程序执行中将会执行基类的虚函数版本。题目程序中,建立了基类base,其内函数void f1()和void f2()均被声明为虚函数,并在调用时会显式的发出声明。派生类derive利用 public方式继承基类base,并覆盖其基类base中的虚函数f1();对于base中的虚函数f2(),由于派生类 derive中的同名函数f2()中带有参数int x,因此被编译器认为是函数重载,而不作虚函数覆盖处理,因此实际上派生类derive中包含两个f2()函数,一个不带参数,调用时执行基类base中的f2()函数版本,一个带参数int x,调用时执行重载后的版本。题目 main()函数中,定义了基类对象。obj 1和基类指针*p,同时定义了派生类对象obj2。p指向。obj2时:p->f1()函数调用执行派生类覆盖后的版本,输出D1;p-> f2()由于不带参数,因此执行未经派生类覆盖的函数版本,即基类base中的f1()函数版本。
转载请注明原文地址:https://kaotiyun.com/show/N1Vp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有以下程序:#includestruetord{intx,y;}dt[2]={1,2,3,4};main(){struetord*p=dt;printf("%d",++p->x);
计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是()。
有以下函数:intfun(char*x,char*y){intm=0;while((*x==*y)&&*x!=’\0’){x++;y++;m++;}returnm;}函数的功能是()。
设已有定义:floatx;,则以下对指针变量p进行定义且赋初值的语句中正确的是()。
下列给定程序中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。字符串的长度最长允许为79。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件NODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的
函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。例如,若s所指字符串中的内容为”ABCDEFG12345”,其中字符C的ASCII码值为奇数,在数组中的下标为偶数,因此必须
给定程序MODI1.C中函数fun的功能是:把主函数中输入的3个数,最大的放在a中,最小的放在c中,中间的放在b中。例如,输入的数为:551234,输出结果应当是:a=55.0,b=34。0,c=12.0。请改正程序中的错误,使
在下列选项中,没有构成死循环的程序段是()。
在公有派生的情况下,派生类中定义的成员函数只能访问原基类的
若执行语句:cout<<setfill(’*’)<<setw(10)<<123<<"OK"<<end1后将输出
随机试题
简述教育管理过程的特点。
男性患者,24岁,1周前“感冒”,2d前出现双下肢无力,伴尿潴留,并逐渐加重。查体:双下肢远端肌力0级,肌张力减低,剑突以下全部感觉及浅反射消失,腱反射减弱,Babinski征阴性,膀胱充盈平脐,脊柱无压痛。本病的临床表现还可出现
男性,24岁,8周来腹泻,每日排便3~4次,有血液与黏液,有里急后重感,伴下腹疼痛,便后腹痛减轻,查体无异常发现。最有诊断价值的方法是
患者,女,61岁。因头昏摔倒致腰椎L2右侧横突骨折而急诊入院,经积极治疗,现病情已稳定。护士协助患者改变体位的方法正确的是
A.抗-HBcB.HBeAgC.抗-HBsD.抗-HBeE.HBsAg病毒复制活跃的标志是()
一臀位娩出婴儿,生后发现左大腿肿胀、缩短畸形并有异常活动。如经检查诊断为左股骨干骨折,其首选的治疗方法应该是
施工现场的专职安全管理人员,应当由企业派驻。()
有限合伙企业的最高权力机构为()。
Amaturemanisone______(善于把失败转化为成功).
HowtoStandOutatGraduateFairsA)Amajoreventforalljob-seekinggraduatesisTheGuardianLondonGraduateFairfromTheC
最新回复
(
0
)