首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include <iostream> using namespace std; class B { public: virtual void show() { cout<<"B"; } };
有如下程序: #include <iostream> using namespace std; class B { public: virtual void show() { cout<<"B"; } };
admin
2009-06-20
62
问题
有如下程序: #include <iostream> 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); return 0; }程序的输出结果是
选项
A、BBB
B、BBD
C、DBB
D、DBD
答案
C
解析
本题考查的知识点是:虚函数与多态性。在成员函数声明的前面加上virtual修饰,即把该函数声明为虚函数。在C++中,一个基类指针(或引用)可以用于指向它的派生类对象,而且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际所指向的对象类的那个重定义版本。题目中,fun1()和fun2()的形参分别是基类的指针和引用,如果传入的实参是指向派生类对象的指针或派生类对象,则函数中调用的show()为派生类中的show(),否则为基类中的show()。给fun1()传入的实参是指向派生类对象的指针p,而给fun2()传入的实参是基类对象。所以 fun1()调用派生类D中的show()输出一个’D’字符,fun2()调用基类B中的show()输出一个’B’字符。fun3()由于形参为基类对象,所以无论传入的是基类对象还是派生类对象,函数中调用的show()始终为基类的版本,输出一个’B’字符。故最终输出结果为 DBB,应该选择C。
转载请注明原文地址:https://www.kaotiyun.com/show/7ojp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
己知inta=6;则执行a+=a一=a*a;语句后,a的值为()。
下面函数的功能是()。sss(s,t)char*s,*t;{while(*s);while(*t)*(s++)=*(t++);returns;}
在面向对象方法中,不属于"对象"基本特点的是()。
某二叉树共有150个结点,其中有50个度为1的结点,则()。
以下程序拟读取一个姓氏,查找其对应的年龄并输出:#include#include#includestructperson{charname[10];intage;};structpersong
给定程序中,函数fun的功能是:统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不
下列选项中不属于面向对象程序设计特征的是
下面不属于结构化程序设计原则的是
测试用例包括输入值集和【 】值集。
随机试题
A注册会计师负责审计甲公司2012年度财务报表,并于2013年3月15日签发了甲公司2012年财务报表的审计报告。对于截至2013年3月15日发生的期后事项,A注册会计师的下列做法正确的有()。
(2018年德州齐河)课程改革是教育改革的核心,因此课程研究比教学研究更为重要。()
下列作品集属于陆放翁的有()
在消毒试验中,自然菌是指存在于某试验对象上
胆囊显影脂肪餐后,显示胆道较好的摄片时间为
有关疾病三级预防,下列哪项说法是正确的
属于咀嚼黏膜的是
政府性基金预算的管理原则有()。
材料1 位于长江之滨的江苏张家港,是我国犯罪率最低的城市之一。与之紧密相关的是,张家港还是首批获评全国文明城市的县级市。早在20年前,这里就以精神文明建设成就享誉全国。长期的文明浸润,涵养了这座城市的法治文化,孕育了张家港人的法治精神。 材料2
Ifx,yandzarepositiveintegerssuchthatxisafactorofy,andxisamultipleofz,whichofthefollowingisNOTnecess
最新回复
(
0
)