首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序 #include<iostream> using nameSpace std; class base { public: vinual void f1() { cout<<"F1 Ba
有如下程序 #include<iostream> using nameSpace std; class base { public: vinual void f1() { cout<<"F1 Ba
admin
2009-02-15
60
问题
有如下程序 #include<iostream> using nameSpace std; class base { public: vinual void f1() { cout<<"F1 Base"; } 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
答案
1
解析
本题主要考查C++中虚函数机制及其继承过程中的要点。虚函数在基类中加关键字virtual声明,在派生类中重新定义;如果派生类没有覆盖虚函数,则程序执行中将会执行基类的虚函数版本。题目程序中,建立了基类base,其内函数void f1()和 voidf2()均被声明为虚函数,并在调用时会显式的发出声明。派生类derive利用public方式继承基类base,并覆盖其基类base中的虚函数f1();对于base中的虚函数f2(),由于派生类derive中的同名函数f2()中带有参数int x,因此被编译器认为是函数重载,而不作虚函数覆盖处理,因此实际上派生类derive中包含两个f2()函数,一个不带参数,调用时执行基类base中的f2()函数版本,一个带参数int x,调用时执行重载后的版本。题目main()函数中,定义了基类对象。obj1和基类指针*p,同时定义了派生类对象。obj2。p指向。obj2时:p—>f1()函数调用执行派生类覆盖后的版本,输出D1:p-> f2()由于不带参数,因此执行未经派生类覆盖的函数版本,即基类base中的f1()函数版本。
转载请注明原文地址:https://www.kaotiyun.com/show/W7kp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
数据库的数据模型分为
以下叙述中错误的是
给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动m
若定义函数“int*func0”,则函数func的返回值为()。
下列数据结构中,能够按照“先进后出”原则存取数据的是()。
以下定义数组的语句中错误的是
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:将a所指3×5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。
给定程序中,函数fun的作用是:不断从终端读入整数,由变量a统计大于0的个数,用变量c来统计小于0的个数,当输入0时结束输入,并通过形参pa和pb把统计的数据传回主函数进行输出。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新
交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。
随机试题
运输规模经济原理是指运输规模越大
心迷走神经兴奋后,可使
一体格发育正常小儿,查体发现心尖区有柔和的Ⅱ级收缩期杂音,局限,受到呼吸,体位和运动影响。该小儿的杂音可见于
在选择具体的绩效考评方法时,应当考虑()。[2012年5月三级真题]
没有无用的知识,只有还没派上用场的知识。人们往往觉得既然用不上,何必为那些_______的东西浪费时间。可他们_______了知识之间的相互联系。知识是关于世间万物的信息,获得一种知识相当于多了一个看世界的角度,从这个角度看过去,一些原有的认识会发生改变,
结合材料回答问题:材料1100年前,陈望道同志翻译了首个中文全译本《共产党宣言》,为引导大批有志之士树立共产主义远大理想、投身民族解放振兴事业发挥了重要作用。现在,你们积极宣讲老校长陈望道同志追寻真理的故事,传播马克思主义理论,是一件很有意义的
在C语言中,函数返回值的类型最终取决于()。
David______hiscompany’ssuccesstotheunityofallthestaffandtheirperseveringhardwork.
Wehadto______alotofnoisewhenthechildrenwereathome.
A、Howtooperateasmartinvestment.B、Mr.Brown’spresentinvestment.C、Therisksofinvestment.D、Thereturnsofinvestment.A
最新回复
(
0
)