首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Shape{ //图形类 public: //图形绘制函数(用显示字母模拟) virtual
有如下程序: #include using namespace std; class Shape{ //图形类 public: //图形绘制函数(用显示字母模拟) virtual
admin
2021-07-02
25
问题
有如下程序:
#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/jlfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
已知枚举类型声明语句为:enumCOLOR{WHITE,YELLOW,GREEN=8,RED,BLACK=15};则枚举常量RED的值为
数据流图中带有箭头的线段表示的是( )。
已知表达式++x中的“++”是作为成员函数重载的运算符,则与++x等效的运算符函数调用形式为()。
使用VC6打开考生文件夹下的源程序文件modi2.zpp。阅读下列函数说明和代码。函数show()的功能是将1、2、3、4四个数字,组成互不相同且无重复数字的四位数,并将这些数输出到屏幕,输出的内容如下:12341243132413421
有如下函数模板定义:template<classT>Tfunc(Tx,Ty){returnx*x+y*y;}在下列对func的调用中,错误的是()。
数据库管理系统中负责数据模式定义的语言是()。
若AA为一个类,a为该类的私有整型数据成员,getA()为该类的一个非静态公有成员函数,功能是返回a的值。如果x为该类的一个对象,要在类外访问x对象中a的值,正确的访问格式为()。
在一棵--X树上,第5层的结点数最多是()。
有如下语句序列:charstr[10];cin>>str;当从键盘输入“Ilovethisgame”时,str中的字符串是()。
有如下语句序列:charstr[10];ci>>str;当从键盘输入’’Ilovethisgame’’时,str中的字符串是()。
随机试题
中国共产党的宗旨是【】
A.蛤蚧B.胡桃仁C.冬虫夏草D.紫河车平补肺肾阴阳,兼止血化痰,用于久咳虚喘,劳嗽痰血,为诸痨虚损调补之要药的是
A、柏子仁B、石膏C、淡附片D、芒硝E、月季花易风化的是()
下列指标中的()可以直接用于计算每股净资产。
根据下面材料,回答问题。金属历来都是通过采矿、冶金制取的,可是80年代初期,科学家发现在聚乙炔中加入强氧化剂或还原剂后,它的导电性能大大提高。因为这种塑料具有金属的一般特性,所以人们称它为“人造金属”。近年来,它的发展极为神速,人们又先后研制成功
美丽而宏伟的大自然,是上帝创造的花园,除了这儿,我们还可以在哪里如此自由地____,充满惊喜和依赖?在哪里还能如此深切地_____生命中无尽的美感,像宇宙一样深沉?填入横线部分最恰当的一项是()。
跳马:体操:运动
Largelectureclassesarefrequentlyregardedasanecessaryevil.Suchclasses(21)beofferedinmanycollegesanduniversitie
在窗体上绘制一个名称为Labell的标签,然后编写如下事件过程:PrivateSubForm_Click()Dimarr(10,10)AsIntegerDimiAsInteger,jAsInteger
下列程序段的执行结果是DIMEa(8)a(1)=1a(2)=1fori=3to8a(i)=a(i-1)+a(i一2)next?a(7)
最新回复
(
0
)