首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #include<iostream> using namespace std; class Base{ public: void output(){cout<<1;} virtual void Print(){cout<<’B’;} }; c
有如下程序; #include<iostream> using namespace std; class Base{ public: void output(){cout<<1;} virtual void Print(){cout<<’B’;} }; c
admin
2015-11-24
29
问题
有如下程序;
#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/tlNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列函数的运行结果是#include<iostream.h>intf(inta,intB){intc;if(a>b)c=1elseif(a=b)c=0;
虚函数必须是类的【】。
重载输入流运算符>>必须使用的原型为
考虑函数原型voidtest(inta,intb=7,charz=’*’下面的函数调用中,属于不合法调用的是
若有说明:int[3][4]={0};则下面叙述正确的()。
下列表达式中,错误的是()。
以下叙述正确的是
t为int类型,进入下面的循环之前,t的值为0。while(t=1){...}则以下叙述中,正确的是()。
下列关于栈的叙述中,不正确的是()。
下列关于运算符重载不正确的是
随机试题
下列人物出自汤显祖的《牡丹亭》的有()
曹操的《短歌行》(其一)是一首()
铜蓝蛋白的主要功用是结合珠蛋白主要功用是
商流的功能可以概括为()。
石墨烯具有薄且坚硬、透光度好、导热性强、导电率高、结构稳定、电子迁移速度快等特性,石墨烯分为多种,其中性能最优异的是()。
在人脑中重现过去所感知过的事物的形象叫()
(2015年第9题)近代中国一些爱国人士提出过工业救国、教育救国、科学救国等主张,并为此进行过努力,但这些主张并不能从根本上给濒临危亡的中国指明正确的出路,这是因为他们没有认识到
求极限=________.
当x→0+时,下列无穷小量中,与x同阶的无穷小是()。
WhatdoestheManMean?
最新回复
(
0
)