首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Shape{ //图形类 public: //图形绘制函数(用显示字母模拟) virtual
有如下程序: #include using namespace std; class Shape{ //图形类 public: //图形绘制函数(用显示字母模拟) virtual
admin
2015-07-22
38
问题
有如下程序:
#include
using namespace std;
class Shape{ //图形类
public:
//图形绘制函数(用显示字母模拟)
virtual void draw()const{ cout<<’S’; }
};
class Triangle: public Shape{ //三角形类
public:
void draw()const{ cout<<’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/xtNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列叙述中正确的是()。
关千成员函数特征的下述中,______是错误的。
下面函数返回数组中最大元素的下标,数组中元素个数为t,将程序补充完整。intfindmax(ints[],intt){intk,p;for(p=0,k=p;p<t;p++){if
耦合和内聚是评价模块独立性的两个主要标准,其中反映了模块内各成分之间联系的是【】。
要定义数组a,使得其中每个元素的数据依次为3,9,4,8,0,0,0,错误的定义语句是()。
从数据库中获取数据称为()。
在关系运算中,【】运算是对两个具有公共属性的关系所进行的运算。
开发软件时对提高开发入员工作效率至关重要的是
非成员函数应声明为类的【 】函数才能访问这个类的private成员。
随机试题
昆士兰热是由下列哪一种立克次体引起的
下列哪项是鹅口疮的口腔护理措施
A.涤痰汤合苏合香丸B.生脉注射液合参附注射液C.藿兰苍荷汤加减D.补阳还五汤加减E.酸枣仁汤加减急性一氧化碳中毒急性中毒期阴竭阳脱证的治疗方剂为
关于妊娠合并病毒性肝炎的说法.不正确的是
A.氢氯噻嗪B.米力农C.氯沙坦D.卡维地洛E.多巴酚丁胺
某办公楼工程招标发包,有多家符合相应资质条件的承包企业供建设单位选择。可供建设单位依法采用的发包方案有()。
使用家畜车或容积72立方米以下的40吨棚车,均按()吨计费。
在中国海域上,分布着众多岛屿,其中最大的为海南岛。()
自动消毒剂有红、黄、白三根管子,红色管子以每秒5克的流量流出浓度为20%的酒精溶液,黄色管子以每秒4克的流量流出浓度为25%的酒精溶液,白色管子以每秒6克的流量流出水。白管打开后开始8秒不流,接着流4秒;然后又停8秒,再流4秒……若将三管同时打开,1分钟后
黏膜下层无小唾液腺分布的是()。
最新回复
(
0
)