首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Shape{ //图形类 public: //图形绘制函数(用显示字母模拟) virtual
有如下程序: #include using namespace std; class Shape{ //图形类 public: //图形绘制函数(用显示字母模拟) virtual
admin
2021-06-10
95
问题
有如下程序:
#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/Jrfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序:#includeusingnamespacestd;classPart{public:Part(intx=0):val(x){cout
下列有关类成员的叙述中,错误的是
下列叙述中正确的是
下列关于模板的叙述中,正确的是()。
待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第()个位置。
下列关于函数参数的叙述中,正确的是()。
一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为
对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为()。
若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是
随机试题
所谓“中线”是
男性,56岁。糖尿病患者,用胰岛素治疗,晚10时突起心慌、多汗、软弱,继而神志不清。查脉搏120次/分,尿糖(一),尿酮体(一),尿素氮10.0mmol/L。最可能为
A、泼尼松龙B、奥利司他C、氟伐他汀D、多潘立酮E、吲哚美辛舌宜睡前服用的是()。
下列关于信用风险的说法,正确的是()。
简述解决客户投诉的原则。
学校心理健康教育的重心是()
下列选项中,符合课题表述规范的是()
Todevelopamarketingstrategybeginswithidentifyingandanalyzingatargetmarket.Thisstep(144)listingcommoncharacteri
Furthertreatmentwillhelptopreventhimfrom(develop)______cancer.
A、Theyoftenmakesuddenattacksonpeople.B、Theybreakupnature’sfoodsupplychain.C、Theycausemuchenvironmentalpollutio
最新回复
(
0
)