首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include <iostream> using namespace std; class Base { public: void output() { cout<<1; } virtua
有如下程序: #include <iostream> using namespace std; class Base { public: void output() { cout<<1; } virtua
admin
2017-10-17
58
问题
有如下程序: #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 (); }程序的输出结果是
选项
A、1B
B、1D
C、2B
D、2D
答案
B
解析
本题考查的知识点是:虚函数与多态性。在成员函数声明的前面加上virtual修饰,即把该函数声明为虚函数。在C++中,一个基类指针(或引用)可以用于指向它的派生类对象,而且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际所指向的对象类的那个重定义版本。本题中,就是通过基类Base的指针ptr指向new出来的派生类Derived对象,从基类的定义中可以看出,output()函数是普通成员函数,而Print()函数是虚函数。所以,通过ptr指针调用的output()是基类中的output(),而通过它调用的Print()则是派生类中的Print()。故本题的输出结果是1D,应该选择B。
转载请注明原文地址:https://kaotiyun.com/show/WXAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+ b/b的值是
设有char str[80]以下不能将输入数据first\nsecond\n<CR>读取到数组sir中的语句是
下列关于虚函数与函数重载区别的叙述中不正确的是
以下程序的运行结果是______。#include<iostream.h>#include<math.h>template<classT>classTAdd//定义类模板TAdd,T为类型{Tx,y;
下列关于运算符重载的描述中,正确的是()。
数据库DB、数据库系统DBS和数据库管理系统DBMS这三者之间的关系是()。
不能作为函数重载的判断依据的是()。
以下都是C++语言标识符的是()
在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是,
关于模板下列说法不正确的是()。
随机试题
不符合慢性粒细胞性白血病血象的是
使声带外展的肌肉是
下列各项,不属于感冒常见病因的是
如果非公开募集基金的募集对象累计人数超过()人,就构成了公开募集基金。
下列有关注册会计师在财务报表审计中对法律法规的考虑中,错误的是()。
某一数字显示器由7段发光二极管组成,通过各二极管的亮灭来显示数字。若用“1”表示亮,“0”表示灭,按左图所示的字母先后顺序对各二极管的亮灭状态编码,右图中数字“9”所对应的编码是()。
班主任为了深入了解学生情况或弄清有关学生教育的某个问题,需运用()。
___________是神经系统结构和功能的单位。
阅读材料回答以下问题。“市民杨女士去茶馆打牌后遗落5000元现金,服务员帮忙收起来并归还,杨女士因此拿出200元表示感谢,没想到服务员收下了。事后杨女士认为服务员这种行为不对,打电话给报社希望曝光,这样的‘客气’与‘不客气’,你怎么看?”海南《南
使用文件前要先打开文件。在成功执行打开文件系统调用后,系统会返回给用户一个()。
最新回复
(
0
)