首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序 #include <iostream> using namespace std; class A{ public: virtual void funcl( ){ cout<<"A1"; } v
有如下程序 #include <iostream> using namespace std; class A{ public: virtual void funcl( ){ cout<<"A1"; } v
admin
2009-03-16
46
问题
有如下程序 #include <iostream> using namespace std; class A{ public: virtual void funcl( ){ cout<<"A1"; } void func2( ) { cout<<"A2"; }; class B:public A { public: void funcl( ){ cout<<"B1"; } void func2( ){ cout<<"B2"; } }; int main( ) { A *p=new B; p->func1 ( ); p->func2( ); return 0; } 运行此程序,屏幕上将显示输出
选项
A、B1B2
B、A1A2
C、B1A2
D、A1B2
答案
C
解析
本题考查的是虚函数的概念。在C++中,一个派生类的对象可以被它的任何一个基类的指针所指向(或被基类类型的引用所引用)。若基类和派生类中存在一模一样的成员函数,那么通过该基类指针(或引用)调用这样的成员函数,究竟是应该调用基类中的还是调用派生类中的呢?答案是:若这个成员函数被定义成虚函数,那么就调用派生类中的;否则会调用基类中的。本题是一个典型的例子,func1()是虚函数,func2()是一般成员函数,而且在派生类与基类中都存在两个这样的函数。在主函数中,语句A*p=new B;定义了一个基类的指针p,并让它指向一个派生类对象。所以通过该指针调用func1()时,运行的是派生类的版本,而通过该指针调用func2()运行的是基类的版本。所以,程序运行后将输出B1A2,应该选择C。
转载请注明原文地址:https://kaotiyun.com/show/2ojp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有两个关系R,S如下,由关系R和S通过运算得到关系T,则所使用的操作为
若有定义:inta=0,b=0,c=0,d=0;,以下关于C语言表达式:(++a||++b):++c:++d执行顺序的叙述正确的是
己知inta=6;则执行a+=a一=a*a;语句后,a的值为()。
以下关于结构化程序设计的叙述中正确的是()。
下列选项中,不属于数据库管理的是()。
将E-R图转换到关系模式时,实体与联系都可以表示成()。
下列选项中不属于面向对象程序设计特征的是
C语言中允许用外部说明来指定变量、函数和其他标识符的特征,这里所说的外部指的是()。
在E-R图中,用来表示实体的图形是
以下关于C语言函数参数传递方式的叙述正确的是
随机试题
贯众的功效是什么?使用时应当注意哪些方面?
下列关于定金罚则的描述,不正确的是()。
在假彩色卫星影像上,水为()。
下列各项中减少应收账款账面价值的有()。
在审计风险模型中,以下有关检查风险的说法中恰当的有()。
对于约定的时间,唯有“正点”到场方为得体。早到与晚到,同样都是不正确的做法()。
“你也去过我们吉林的长白山呢?”这种导游讲解语调是()。
考任制:就是政府为推行公务,采用公开竞争考试的科学方法,来测量并判断其所需要的人员是否合乎标准,进而按考试成绩的优劣进行挑选,取其优者以任用为政府工作人员的一套制度。下列任用方式属于考任制的一项是()
Iwas______thepointoftelephoninghimwhenhisletterarrived.
Thepersonwho______thistypeofresearchdeservesourpraise.
最新回复
(
0
)