首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Shape{ //图形类 public: //图形绘制函数(用显示字母模拟) virtual
有如下程序: #include using namespace std; class Shape{ //图形类 public: //图形绘制函数(用显示字母模拟) virtual
admin
2021-05-06
33
问题
有如下程序:
#include
using namespace std;
class Shape{ //图形类
public:
//图形绘制函数(用显示字母模拟)
virtual void draw()const{ cout<<’S’; }
};
class Circle: public Shape{ //圆形类
public:
void draw()const{ cout<<’C’; }
};
void plot(Shape &s){ s.draw(); }
int main(){
Shape *ps=new Circle;
Circle t;
ps->draw();
t.draw();
plot(t);
delete ps;
return 0;
}
运行这个程序的输出是
选项
A、SCC
B、SCS
C、CSS
D、CCC
答案
D
解析
C++中,多态性调用需要满足两个条件,1、被调用成员函数必须是虚函数;2、必须通过基类类型的引用或指针进行函数调用。多态性使程序在运行时期根据指针或引用所指对象的类型来决定调用哪个函数。
程序中,类Shape定义了虚函数draw(),在派生类Circle中重写了函数draw();main函数中,分别使用指针、对象、引用三种方式调用函数draw(),指针ps是基类指针,指向的是派生类的对象,所以这里根据多态性,将调用Circle中的draw函数,输出"C";对象t是Circle对象,也调用Circle中的draw函数,输出"C";函数plot()执行时引用s引用的是实参t,引用对象是派生类Circle对象,根据多态性,同样调用Circle中的draw函数,输出"C";结果输出为"CCC";答案为D。
转载请注明原文地址:https://kaotiyun.com/show/eTfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的()。
数据流图中带有箭头的线段表示的是()。
运算符重载是对已有的运算符赋予多重含义,因此()。
下列情况中,不会调用拷贝构造函数的是()。
有如下程序:#includeusingnamespacestd;intmain(){charstr[100],*p;cout
一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。
层次型、网状型和关系型数据库划分原则是( )。
一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为()。
对如下二叉树进行后序遍历的结果为()。
在E-R图中,用来表示实体联系的图形是()。
随机试题
血液中CO2浓度增高时对呼吸有何影响?其作用机制是什么?
2l世纪人人享有卫生保健的价值体现了以下诸多方面,其中哪一项不属于其范围()
雌激素()卵泡发育,()卵子在输卵管的运行速度。
施工成本控制的实施步骤为( )。
商品价格变动会产生的效应包括()。
配送中心送货合理化指标主要有:()。
已知四边形ABCD,若,则四边形ABCD的面积S=().
如胶似漆:情侣
Wemaylookattheworldaroundus,butsomehowwemanagenottoseeituntilwhateverwe’vebecomeusedtosuddenlydisappears
Morethanthreedozenbillionaires,includingwell-knownphilanthropist(慈善家)DavidRockefeller,havepromisedatleasthalfofth
最新回复
(
0
)