首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
60
问题
有如下程序: #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全国计算机二级
相关试题推荐
已知下列程序的输出结果是42,请将横线处缺失的部分补充完整。#include<iostream>usingnamespacestd;classTestClass{intvalue;public:Tes
有如下类声明:classMyBASE{intk;public:voidset(intn){k=n;}intget()const{returnk;}};classMyDERI
类的析构函数的作用是
关于常成员函数,下列说法中错误的是
下列关于运算符重载的描述中,正确的是()。
不能作为函数重载的判断依据的是()。
以下关于静态成员变量的叙述不正确的是
运算符函数调用格式的表达式y/x++与表达式y.operator/(operator++(x,0))的含义相同,由此可看出()。
C++中的多态分为运行时的多态性及【 】时的多态性。
有如下定义:classMA{intvalue;public:MA(intn=0):value(n){}};MA*ta,tb;其中MA类的对象名标识符是______
随机试题
基层业务人员和管理人员使用的信息是()
A.异丙托溴铵B.沙丁胺醇C.沙美特罗D.噻托溴铵E.福莫特罗短效β2受体激动剂为
固体分散体中药物的分散状态有
取得一级资质的合伙的房地产估价机构的出资额为人民币()万元以上。
对于大型复杂的产品,应用价值工程的重点应放在( )。
下列选项中属于保证担保范围的有()。
机关事业单位在参加基本养老保险的基础上,应当为其工作人员建立职业年金。单位按本单位工资总额的()缴费,个人按本人缴费工资的()缴费。
18,1/3,6,2,12,()
根据材料。回答121-125题。2005年教育行业的固定投资额为()亿元。
CharlieBellbecamechiefexecutiveofMcDonald’sinApril.Withinamonthdoctorstoldhimthathehadcolorectalcancer.After
最新回复
(
0
)