首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #inc1ude<iostream> using namespace std; class B{ public: virtual void show() {cout
有如下程序; #inc1ude<iostream> using namespace std; class B{ public: virtual void show() {cout
admin
2016-11-23
19
问题
有如下程序;
#inc1ude<iostream>
using namespace std;
class B{
public:
virtual void show() {cout<"B"; }
};
class D:public B {
public:
void show() {cout<"D";}
void funl(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;
funl(p);
fun2(b);
fun3(d);
return 0;
}
程序的输出结果是( )。
选项
A、BBB
B、BBD
C、DBB
D、DBD
答案
C
解析
此题考查的是虚函数与多态性。在成员函数的声明前面加上virual关键字,即可把函数声明为虚函数;在C++中,一个基类指针可以用于指向它的派生类对象,而且通过这样的指针调用虚函数时,被调用的是该指针实际所指向的对象类的那个重定义版本。此题中,funl()和fun20的形参分别是基类的指针和引用,给funl()传入的实参是指向派生类对象的指针p,funl()将调用D类中的show0输出字符‘D’;给fun2()出入的实参是基类对象,fun2()调用类B中的show0输出字符‘B’;fun3()由于形参是基类对象,调用的始终都是基类的show0,输出字符‘B’。故最终输出结果是DBB。
转载请注明原文地址:https://jikaoti.com/ti/Yet0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
为完成下面的程序,应在划线处填入的语句是()。#include<iostream>usingnamespacestd;classBase{private:intx;p
下列对字符数组进行初始化的语句中,正确的是()。
下面有关重载函数的说明中,正确的是()。
判断char型变量c是否为小写字母的正确表达式是
对建立良好的程序设计风格,下面描述正确的是
有如下函数模板定义:template<typenameT1,inta2,inta3>T1sam(T1a1){return(al+a2+a3);}则以下调用中正确的是
类模板的模板参数()。
下列叙述中,正确的是
下列叙述中,不属于测试的特征的是
数据结构分为逻辑结构和存储结构,循环队列属于______结构。
随机试题
计算定积分.
美国的私立学校在规模和质量上相差很大。
养阴清肺汤中少佐薄荷的主要意义是
患者腹部胀大3月有余,胁下胀痛不适,纳食欠佳,食后腹胀,小便短少,下肢微肿,检查示:面色晦暗,周身皮肤发黄,腹胀大,胁下可触及瘕块,双下肢按之肿,苔白腻,脉弦细,应诊断为
消费者对某一种公共物品的消费并不影响其他人对该公共物品的消费,这是指公共物品的( )。
下列收入列为免纳个人所得税范围的是()。
在拥挤的世界上我们都看不到未来却知道自己并不孤单,不知道是哪来的这份勇气,____________身边没有人加油打气____________敢一个人闯天下,仿佛伸开手臂____________能拥抱世界。填入画横线部分最恰当的一项是:
设A=,E是3阶单位阵.(Ⅰ)求方程组Ax=0的基础解系和通解;(Ⅱ)设B4×3,求满足AB=E的所有B.
顶级域名的划分采用()两种划分模式。
SupposeyouareamemberofavolunteerorganizationAsBeijing2008OlympicGamesisdrawingnear,pleasewritealettertoall
最新回复
(
0
)