首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #inc1ude<iostream> using namespace std; class Base{ public: void output() {cout<<l
有如下程序: #inc1ude<iostream> using namespace std; class Base{ public: void output() {cout<<l
admin
2016-11-23
17
问题
有如下程序:
#inc1ude<iostream>
using namespace std;
class Base{
public:
void output() {cout<<l; }
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/KzAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
以下程序的执行结果是______。#include<iostream.h>int&max(int&x,int&y){return(x>y?x:y);}
下列关于多态性的描述,错误的是
如果表达式x*y+2中,“*”是作为友元函数重载的,“+”是作为友元函数重载的,则该表达式还可为
下列叙述中正确的是
若定义intk=7,x=12;,则能使值为3的表达式是
以下不属于对象的基本特点的是
下列叙述中正确的是
如果一个模板声明列出多个参数,则多个参数之间必须使用______隔开,每个参数都必须重复使用关键字______。
算法的空间复杂度是指
关于关键字class和typename,下列描述中正确的是( )。
随机试题
铁剂可用于治疗()。
“不积跬步,无以至千里;不积小流,无以成江海”的名言告诉人们的哲理是()
我国刑法规定,对于被胁迫参加犯罪的,应当按照他的犯罪情节()
下列会使盈亏平衡点发生变化的是
胃液中的碳酸氢盐是有哪种细胞分泌
风寒外束,肺气壅遏,咳喘者。宜选用外感风寒,并见胸闷不舒者。宜选用
健全扶持机制,按照()原则,加大国家对欠发达地区的支持力度,加快革命老区、民族地区、边疆地区和贫困地区经济社会发展。
()基础适用于地下水位较低的地区,并与其他材料基础共用,充当基础垫层。
灌浆工程通常采用的水泥有()。
城镇土地使用税以纳税人实际占用的土地面积为计税依据。()
最新回复
(
0
)