首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
27
问题
有如下程序:
#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全国计算机二级
相关试题推荐
下列代码段中声明了3个类:classPerson{};classStudent:publicPerson{};classUndergraduate:Student{};下列关于这些类之间关系的描述中,错误的是()。
下列关于C++流的表述中,正确的是
有如下类声明:classBase1{};classBase2{};classDerived:publicBase2,publicBase1{};在一个Derived对象消亡时,析构函数被调用的顺序
为类MyClass重载赋值运算符时,应将其重载为类的
下列有关类继承的叙述中,错误的是()。
下列关于运算符函数的描述中,错误的是()。
运算符重载时必须有所不同的是
模板对类型的参数化提供了很好的支持,因此()。
一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是( )。
算法的空间复杂度是指( )。
随机试题
( )是数据仓库的核心。
小肠闭袢性梗阻的特点是
A、缩短时间、围封隔离、个人防护B、围封隔离、除污保洁、个人防护C、增大距离、除污保洁、个人防护D、屏蔽防护、时间防护、距离防护E、减小距离、除污保洁、个人防护外照射的防护主要措施有
下面对特定减免税货物的报关于续错误的叙述的是()。
下列不属于中央银行的货币政策采用的三项政策工具的是()。
()是组织中最重要的原则。
唯物辩证法和形而上学斗争的焦点集中在是否承认()。
毛泽东思想活的灵魂是贯穿于毛泽东思想各个组成部分的立场、观点和方法。下列各项中不是毛泽东思想的活的灵魂的基本方面的是()。
在其他环境条件基本相似的情况下,行政管理幅度与管理层次的关系为()。
已知编号为1,2,3的3个袋中各有3个白球、2个黑球,从1,2号袋中各取一球放入3号袋中,则3号袋中白球数X的期望与方差分别为()
最新回复
(
0
)