首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
admin
2020-07-23
46
问题
有如下程序:
#include
using namespace std;
class B {
public:
virtual void show() { cout<<"B"; }
};
class D: public B {
public:
void show() { cout<<"D"; }
};
void fun1(B *ptr) { ptr->show(); }
void fun2(B &ref) { ref.show(); }
void fun3(B b) { b.show(); }
int main()
{
B b,*p=new D;
D d;
fun1(p);
fun2(b);
fun3(d);
delete p;
return 0;
}
执行这个程序的输出结果是( )。
选项
A、BBB
B、BBD
C、DBB
D、DBD
答案
C
解析
在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数,本题中定义类B的对象b、对象指针*p=newD以及类D的对象d;执行fun1会调用派生类的show函数,因为show函数为虚函数,而调用fun2、fun3仍然为基类的show函数,所以本题答案为C。
转载请注明原文地址:https://kaotiyun.com/show/j2yp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有三个关系R、S和T如下:则由关系R和S得到关系T的操作是
有如下类声明和函数声明classBase{intm;public:intn;protected:intp;};classDer
下列叙述中正确的是
有如下程序:#include#includeusingnamespacestd;classAnimal{public:virtualstring
有两个关系R和T如下:则由关系R得到关系T的操作是()。
派生类的成员函数不能访问的基类成员是
下列关于运算符重载的叙述中,正确的是
下列运算符中,不能作为成员函数重载的是
在软件开发中,需求分析阶段产生的主要文档是( )。
在关系数据库中,用来表示实体间联系的是
随机试题
《住宅室内装饰装修管理办法》规定,住宅使用人与装饰装修企业应当签订住宅室内装饰装修书面合同,明确双方的权利和义务。下列选项中,关于住宅室内装饰装修合同主要内容的表述,有误的是()。
不属于判断系统性红斑狼疮活动的依据的是
患者平素眩晕,耳鸣。突然发生口舌歪斜,舌强语謇,半身不遂,但其神志清楚,舌红,脉弦滑。治疗应首选()
关于法律解释和法律推理,下列哪一说法可以成立?(卷一/2009年第9题)
我在单位工作很有成就感,因此,在日常的生活和工作中,我不怕见父母,不怕见邻居,不怕见同事和领导,但是就怕见我孩子的四年级老师,都怪我的儿子不争气,使我也总是挨这位老师的训。我儿子爱说爱动,在课堂上时常有“违反”纪律的现象,因此我被这位教师在电话里
“一国两制”构想中高度自治内容主要包括()。
宋代,由于赋役的苛重和不均,一般地主和形势户,为了减轻赋税,便把自己的土地和人丁分散成许多户头,这叫()。
Whencompaniesdobusinessoverseas,theycomeincontactwithpeoplefromdifferentcultures.Theseindividualsoftenspeakad
Icouldn’tsleeplastnightbecausethetapinthebathroomwas______.
A、Makepeoplecomeupwithroughnumbersandestimates.B、Makepeopleuselessenergyandgeneratefewergases.C、Helpscientist
最新回复
(
0
)