首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #include<iostream> using namespace std; class Base{ public: void output(){cout<<1;} virtual void
有如下程序; #include<iostream> using namespace std; class Base{ public: void output(){cout<<1;} virtual void
admin
2020-04-07
54
问题
有如下程序;
#include<iostream>
using namespace std;
class Base{
public:
void output(){cout<<1;}
virtual void Print(){cout<<’B’;}
};
class Derived:public Base{
public:
void output(){cout<<2;}
void Print(){cout<<’D’;}
};
int main(){
Base*ptr=new Derived;
ptr->output();
ptr->Print();
delete ptr;
return 0;
}
程序的输出结果是( )。
选项
A、1B
B、1D
C、2B
D、2D
答案
B
解析
此题考查的是虚函数与多态性。在成员函数的声明前面加上virual关键字,即可把函数声明为虚函数:在C++中,一个基类指针可以用于指向它的派生类对象,而且通过这样的指针调用虚函数时,被调用的是该指针实际所指向的对象类的那个重定义版本。本题中,从基类的定义可以看出:output()函数是普通成员函数,而Print()函数是虚函数。所以,通过ptr指针调用的output()是基类中的output(),而通过它调用的Print()则是派生类中的Print()。
转载请注明原文地址:https://kaotiyun.com/show/338p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列程序的输出结果是#include<iostream.h>intmin(inta,intb){if(a<b)returna;elsereturnb;return0;
关于函数重载,下列叙述中错误的是()。
已知inta,*pa=&a;输出指针pa十进制的地址值的方法是()。
在MyClass类的定义中,对赋值运算符:进行重载。请将画线处缺失的部分补充完整。【】MyClass::operator=(constMyClass&rhs){if(this==&rhs)return*this
有如下类的定义。空格处的语句是()。classMyClass{____________intx,y;public:MyClass(inta=0,intb=0
下列有关类继承的叙述中,错误的是()。
关于函数重载,下列叙述中错误的是
C++中的类有两种用法:一种是类的实例比,即生成类的对象,并参与系统的运行;另一种是通过()派生出新的类。
数据库设计分为需求分析阶段、______阶段、逻辑设计阶段、物理设计阶段、数据库实施阶段、数据库运行和维护阶段。
将E-R图转换到关系模式时,实体与联系都可以表示成()。
随机试题
器官移植后最常见的消化道并发症是【】
下列关于个体心理发展的关键期的叙述,错误的是
肺痈恢复期的病机是
A.信号放大器B.信号比较器C.A/D转换器D.D/A转换器E.探测器将探测器接收的信息转换为数字信号的部件是
在项目投资现金流量表中,调整所得税的计税基数是()。
将“临时人员”的工资表名称修改为“1月份管理人员工资表”。
瑞典化学家诺贝尔设立诺贝尔和平奖遗嘱的初衷是,推动结束战争以及有利于和平的裁军。2006年该和平奖被授予为贫困人口创造经济和社会发展机会的孟加拉国农村农业银行及其创始人,2007年这一奖项被授予宣传气候变化危害的IPCC和戈尔。在西方一些持有异议的人士看来
使用Outlook创建邮件账户时,不能选择的邮件接收服务器类型是()。
下面程序的功能是统计字符串中"i"的个数,请填空。SubCOU()DimnAsIntegera$="BeijingUniversityofTechnology"n=Len(a$)Fori=1Tonb$=Mid$(
Whydidshechoosepsychology?
最新回复
(
0
)