首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #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
44
问题
有如下程序;
#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>voidmain(){charx=040;cout<<(X<<1);}
设有程序段intk=10;while(k=0)k=k-1;则下面描述中正确的是
设有intx=11;,则表达式(x++*2/3)的值是
若有以下程序:#inclide<iostream>usingnameSpacestd;classA{pricate:inta;public:A(inti){
在进行任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是
下列对模板的声明中,正确的是
下列表达式中,错误的是()。
在类中定义和实现的函数称为()。
对于重载的运算符>>,它是一个
多态性指的是
随机试题
心源性呼吸困难的主要原因是
肝硬化病人使用利尿药,应特别注意维持_______和_______平衡。
下列内分泌因素与系统性红斑狼疮的发病有关的是
慢性再生障碍性贫血应首选()。
该项目土地使用权出让合同由()与甲公司签订。甲公司实施该项目的项目资本金不得少于()万元。
下列说法中正确的是()。
到期一次还本付息法一般适用于期限在()的贷款。
有甲、乙、丙三种浓度的过氧化氢,按甲与乙体积之比2:1混合,得到浓度为13%的过氧化氢;按甲与乙体积之比1:2混合,得到浓度为14%的过氧化氢。如果甲、乙、丙体积之比为1:1:3,混合成的过氧化氢浓度为10.2%,则同体积的甲、乙、丙三种浓度的过氧化氢混合
若串s="Program",则其子串的数目是【】。
WheneverIhearaweatherreportdeclaringit’sthehottestJune10onrecordorwhatever,Ican’ttakeittooseriously,becaus
最新回复
(
0
)