首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #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
50
问题
有如下程序;
#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://www.kaotiyun.com/show/tlNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列对模板的声明中,正确的是
有以下程序#include<iostream>usingnamespacestd;classsample{private:intx;public:sample(intA
考虑函数原型voidtest(inta,intb=7,charz=’*’下面的函数调用中,属于不合法调用的是
面向对象程序设计将数据和什么放在一起,作为一个相互依存、不可分割的整体来处理?
下列关于动态联编的描述中,错误的是()。
关于纯虚函数和抽象类的描述中,()是错误的。
两个变量定义不能同名,是因为()。
从实现的角度划分,c++所支持的两种多态性分别是【】时的多态性和运行时的多态性。
随机试题
我国第一部医学百科全书是
汗管瘤的好发部位为
桥梁容许建筑高度是指公路(或铁路)定线中所确定的()
五岳中以峻闻名、以险著称、以雄著称、以幽著称的分别是()。
强制性社会控制是指社会管理系统运用强制性手段建立和维持社会秩序的过程。根据以上定义,下列不属于强制性社会控制的是()。
交换寄存器SI,DI的内容,正确的程序段是( )
授業が終わって、全員________立ち上がった。
Thisbookprovidesyouwiththesimplebasicsforbeingphysicallyfit.【21】______yourageorpresentstateoffitness,you
Ifamotherpusheshersmallsoninaswing,givingonlyalightforceeachtimehereturns,eventuallyhewillbeswingingquit
Completethesentencesbelow.WriteNOMORETHANTWOWORDSforeachanswer.SavingthejuniperplantBackgroundNowadays,itsb
最新回复
(
0
)