首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序#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
30
问题
有如下程序#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://jikaoti.com/ti/EqL0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有以下程序#include<stdio.h>voidmain(){intn=2,k=1;while(!(k>0||n++));printf(’’%d%d\n’’,k,n);}程序运行
若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的swich语句是()。
下列叙述中正确的是()。
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。请在程序的下画线处填入正确的
有以下程序:#includemain(){intc,d;c=13&5:d=10&&5;printf("%d,%d\n",c,d);}程序的运行结果是()。
设有定义:intx[2][3];则以下关于二维数组x的叙述错误的是
有以下程序:#include<stdio.h>intadd(inta,intb){return(a+b);}main(){intk,(*f)(),a=5,b=10;f=add;}则以下函数调用语句错误的是()。
下列二叉树描述中,正确的是()。
程序设计的任务包括()。
某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是( )。
随机试题
A.疖B.痈C.丹毒D.急性蜂窝织炎E.淋巴管炎皮肤可见“红线”的是
第一代头孢菌素不具有以下哪个特征
某蓄电池厂男工,工龄10年,主诉头昏、头痛、乏力、记忆减退、睡眠障碍、食欲缺乏、脐周隐痛。经检验尿δ-ALA为28.6μmol/L。首先考虑的诊断是
下列关于个人独资企业的说法,不正确的是:()
自动调节器的基本运算规律包括()。
薪酬水平一般的企业应注意市场薪酬的()
根据以下资料。回答以下小题。按2001-2007年的发展速度,以下判断正确的是()。
表单里有一个选项按钮组,包含两个选项按钮Option1和Option2,假设Option2没有设置Click喜件代码,而Optionl以及选项按钮组和表单都设置了Click事件代码,那么当表单运行时,如果用户单击Option2,系统将
Amtrak(美国铁路客运公司)wasexperiencingadownswinginridership(客运量)alongthelinescomprisingitsrailsystem.Ofmajorconcernt
Whatdoesascientistdowhenheorshe"explains"something?Scientificexplanationcomesintwoforms;generalizationandredu
最新回复
(
0
)