首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
admin
2015-07-22
28
问题
有如下程序:
#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://kaotiyun.com/show/YANp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若调用一个函数,且此函数中没有return语句,则正确的说法是该函数()。
下面程序的输出结果是【】。#include<iostream>usingnamespacestd;classA{inta,b;public:A(){
以下函数的功能是删除字符串s中的所有数字字符。请填空。voiddele(char*s){intn=O;for(i=0;s[i];i++){if(【】)
下列叙述中正确的是
有以下面程序:#include<iostream>usingnamespacestd;longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));
若有以下程序:#include<iostream>usingnamespacestd;classBase{public:Base(){x=
下列类的定义中,有()处语法错误。classBase{public:Base(){}Base(inti){data=i;}
设在主函数中有以下定义和函数调用语句,且fun()函数为void类型,请写出fun()函数的首部【】。intmain(){doubles[10][22];intn;fun(s);re
类是一个支持集成的抽象数据类型,而对象是类的【】。
假设fin是一个文件流对象,则关闭文件的语句是【】。
随机试题
实践“永明体”的诗人有()
简述刑事上诉状上诉理由部分的写作要求。
已知z=ylnxy,求
女性,45岁。入院诊断为急性胰腺炎。治疗2周后体温仍在38~39℃,左上腹部压痛,且能扪及一包块,局部触痛明显。尿淀粉酶256U,血白细胞20×109/L。下列哪种情况可能性大
A.麻黄B.穿心莲C.广藿香D.细辛E.金钱草髓部薄壁细胞中含红色块状物的是
图中所示的建筑是()。
工程咨询业目前所面临的突出问题是()。
制定培训规划的有效性就是要求制定过程必须体现出()
关于消化性溃疡急性穿孔的叙述,下列哪项是正确的
Object-orientedanalysis(OOA)isasemiformalspecificationtechniquefortheobject-orientedparadigm.Object-orientedanalysi
最新回复
(
0
)