首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
admin
2015-07-22
66
问题
有如下的类声明:
#include
using namespace std;
class AA{
public:
virtual void disp(){ cout<<’A’; }
};
class BB: public AA{
public:
void disp(){ cout<<’B’; }
};
class CC: public BB{
public:
virtual void disp(){ cout<<’C’; }
};
void plot(AA a){ a.disp(); }
int main(){
BB bb;
CC cc;
BB &rb=cc;
plot(bb);
cc.disp();
rb.disp();
return 0;
}
运行这个程序的输出是
选项
A、ACC
B、ACB
C、BCC
D、BCB
答案
A
解析
程序定义了类AA,成员函数disp是虚函数;类BB公有继承AA,重新定义了函数disp,由虚函数的性质可知,即使BB中未使用virtual修饰disp,函数disp仍然是虚函数;类CC公有继承了BB,同样重新定义了虚函数disp;main函数中定义了BB类对象bb,CC类对象cc,BB类引用rb,rb被初始化指向cc;然后调用plot函数,由于plot函数的形参是AA类对象a,不满足多态性中调用者必须要是引用或者指针类型的条件,所以无论实参是bb或cc,a.disp()调用的都是AA类中的函数disp,输出"A";cc.disp()显然调用的是类CC中的函数,输出"C";rb.disp(),由于rb是引用,指向的是类CC对象cc,所以这里由多态性可知调用的是CC类中的disp函数,输出"CC";程序输出结果为:"ACC";答案为A。
转载请注明原文地址:https://kaotiyun.com/show/VANp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,在划线处应填入的选项是#include<iostream.h>voidmain(){
类ostream的成员函数______用于执行无格式输出,成员函数______用于输出单个字符。
以下程序的输出结果是()。#include<iostream.h>voidfunc(char**m){++m:cout<<*m<<endl;}
下面程序的运行结果为()。#include<iostream.h>voidmain(){chara=’3’:switch(a){c
以下函数的功能是删除字符串s中的所有数字字符。请填空。voiddele(char*s){intn=O;for(i=0;s[i];i++){if(【】)
下列类的定义中,有()处语法错误。classBase{public:Base(){}Base(inti){data=i;}
下面关于虚函数的描述中正确的是
在面向对象的程序设计中,下列叙述中错误的是
已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为
mystrlen函数的功能是计算str所指字符中的长度,并作为函数值返回,请填空。intmystrlen(char*str){inti;for(i=0;【】!=’\0’;i++);return(i);}
随机试题
波士顿矩阵分析法
光镜下区分癌与肉瘤的主要依据是
将探测器接收的信息转换为数字信号的是
有关呕血与黑粪的叙述,下列哪项是正确的( )。
原发型肺结核的病变特点是()
为保证堤坝式电站在建设和运行期间不造成下游河道断流,必须考虑下泄生态流量的时期有()。
下列各项中,不得在企业所得税税前扣除的有()。
A公司于2017年4月5日从证券市场上购入B公司发行在外的股票200万股,作为可供出售金融资产核算,每股支付价款4元(含已宣告但尚未发放的现金股利0.5元),另支付相关交易费用12万元。A公司取得可供出售金融资产时的入账价值为()万元。
()是人民警察的象征与标志。
在中世纪,直接继承了古希腊罗马文化教育并使之得以保存和传播的是()。(2009年)
最新回复
(
0
)