首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #include<iostream> using namespace std; class Base{ public: void output(){cout<<1;} virtual void
有如下程序; #include<iostream> using namespace std; class Base{ public: void output(){cout<<1;} virtual void
admin
2017-04-25
38
问题
有如下程序;
#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/O2Ap777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序:#inCludeusingnameSpacestd;ClassA{public:A(inti=0):r1(i){}voidplint(){cout
下面程序的运行结果为【 】。classA}public:intnum;A(inti){num=i;}A(A&a){num=++a.num;}voidprint(){
为 int *p; 动态分配内存空间并且赋初始值0的语句是【 】。
将x+y*z中的“+”用成员函数重载,“*”用友元函数重载应写为______。
一个项目具有一个项目主管,一个项目主管可管理多个项目。则实体集"项目主管"与实体集"项目"的联系属于______的联系。
已知在函数func()中语句this->ff=0;与语句ff=0;的效果完全相同。对于这一现象,下列表述中错误的是
有如下程序:#include<iostream>usingnamespacestd;classTestClass{protected:TestClass(){cout<<’x’;}TestClass(ch
若有下列定义及初始化语句: int i=100; int *ip=&i; int k=*ip; 并假设整型数i的地址为0x12345678,指针ip的地址为0x21000000,则k的值为( )。
在关系模型中,把数据看成一个二维表,每一个二维表称为一个【 】。
在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为【 】。
随机试题
肾糖阈
下列不属于咨询工程师对工程项目管理的目的的是()
下列关于基金财产的债权的说法中,错误的是()。
某银行推出一种新的贷款品种,该品种的利率每年根据通货膨胀率调整一次,则该贷款属于()。
()是安全生产的核心。
小学儿童演绎推理能力发展可分为如下水平()。
_____ustheinformation,wewouldhavebeenambushed.
()把认知主义的观点引进行为主义的学习联结理论,改变了学习联结理论把学习看成是盲目的、机械的错误观点。
PC机采用中断向量方式处理8级外中断,中断号依次为08H~0FH,在RAMO:2CH单元开始依次存放23H、FFH、00H和FOH四个字节,该中断向量对应的中断号和中断程序入口是( )。
Womenteachersareholdingbackboysbyblamingthemfortypicallymalebehavior,accordingtoastudyouttoday.Theyarereinf
最新回复
(
0
)