首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespaee std; class Shape{//图形类 public: //图形绘制函数(用显示字母模拟) virtual void draw()eons
有如下程序: #include using namespaee std; class Shape{//图形类 public: //图形绘制函数(用显示字母模拟) virtual void draw()eons
admin
2020-06-29
73
问题
有如下程序:
#include
using namespaee std;
class Shape{//图形类
public:
//图形绘制函数(用显示字母模拟)
virtual void draw()eonst{tout<<’S’;}
};
elass Triangle:public Shape{//三角形类
public:
void draw()eonst{eout<<’T’;}
};
void plot(Shape*s){s->draw();}
int main(){
Shape s;
Triangle t;
plot(&s);
plot(&t);
s=t:
s.draw();
return 0;
}
运行这个程序的输出是( )。
选项
A、STT
B、STS
C、TSS
D、TTT
答案
B
解析
main函数中,plot函数的参数通过Shape对象引用和Triangle对象引用来调用虚函数draw(),由于形参s是基类引用,所以符合多态性调用,程序将在运行时期根据s引用对象的类型决定调用哪个draw(),这里实参s是Shape类类型,因而调用Shape类的draw()函数,实参t是Triangle类类型,因而调用Triangle类的draw()函数,输出:“ST”;程序接着将派生类对象t赋给s,由于基类Shape没有显式的定义赋值运算符和将派生类对象作为参数的基类构造函数,因而编译器自动产生基类Shape的赋值运算符operator=(Shape&a),语句s=t将调用赋值运算符,a引用派生类对象t,完成赋值,此时s包含t中基类的副本,而t中剩下部分将被忽略,语句s.draw()将调用Shape类中的draw()函数,输出“s”,程序输出结果为“STS”。答案为B。
转载请注明原文地址:https://kaotiyun.com/show/j78p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分的程序。函数func(intA[NUM],intn)实现的功能是将数组的内容进行一次重新排序。排序的方法是:给定n,则下标为i的数字与下标为n.i的数字交换。
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:(1)完成构造函数,设置数组元素的个数为0,请在注释//********1********之后添加语句。
软件生命周期中的活动不包括( )。
下列有关类的表述中,正确的是
有如下两个类定义:classAA{};classBB{AAv1,*v2;BBv3,*v4;};其中定义错误的成员变量是
下列关于模板的表述中,错误的是
下列符号中不属于C++关键字的是()。
设二叉树如下:则后序序列为
一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为( )
随机试题
Imissedthelastbus.Icoulddonothingbut______inthevillageforthenight.
胸外心脏挤压时,应使胸骨下陷()
A.门脉性肝硬化B.胆汁性肝硬化C.坏死后性肝硬化D.血吸虫性肝硬化结节大小不等,假小叶大小不等见于
(2018年)需要与弹性元件结合使用的压力传感器是()。
关于工作时间的规定,下列做法中正确的有()。
价值评估的目的是帮助投资人和管理当局改善决策,其主要用途有()。
在实际教学过程中,知识直观的方式主要有()、模象直观和言语直观。
填写在短文[]处最恰当的词语是( )。博勒为什么要发明计算机?( )
She_____forawhileandwasunabletomakeadecision,sosheaskedformyhelp.
ConsumerDemandandDevelopmentofGreenCarsThedayautomakersputtheearthatthetopoftheiragendawillgodowninhistor
最新回复
(
0
)