首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
admin
2020-05-14
22
问题
有如下程序:
#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=new D以及类D的对象d;执行fun1会调用派生类的show函数,因为show函数为虚函数,而调用fun2、fun3仍然为基类的show函数,所以本题答案为C。
转载请注明原文地址:https://jikaoti.com/ti/s2A0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下述关于数据库系统的叙述中正确的是
下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈顶元素在stack[top-1]中,在下面横线处填上适当的语句,完成栈类模板的定义。template<classt>classT
以下选项中,与k=n++完全等价的表达式是
下列对模板的声明中,正确的是()。
下列关于成员函数特征的描述中,错误的是()。
下列叙述中正确的是( )。
按照标识符的要求,下列选项中,()符号不能组成标识符。
如果表达式y*x++中,“*”是作为成员函数重载的运算符,“++”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为
友元运算符obj1>obj2被C++编译器解释为()。
在深度为5的完全二叉树中,度为2的结点数最多为______。
随机试题
在收益法的运用中,确定折现率的方法不包括【】
为推翻清朝统治的革命斗争奠定思想基础的是()
关于主动转运,错误的是
“三曹”中诗风悲凉慷慨、气韵沉雄的是()
Tinel征
尿素合成的限速酶是
通用会计电算化系统对往来业务的基本处理方式有()。
期货交易所对期货交易、结算、交割资料的保存期限应当不少于( )年。
为了直观地分析系统的动作,从特定的视点出发描述系统的行为,需要采用动态分析的方法。其中(29)本来是表达异步系统的控制规则的图形表示方法,现在已经广泛地应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。
Ifweleavenow,weshouldmissthetraffic.
最新回复
(
0
)