首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下关于某绘图系统的技术说明、部分UML类图及C++程序,将C++程序中(1)~(6)空缺处的语句填写完整。 【说明】 某绘图系统存在Point、Line和Square这三种图元,它们具有Shape接口,图元的类图关系如图5-10所示。
阅读以下关于某绘图系统的技术说明、部分UML类图及C++程序,将C++程序中(1)~(6)空缺处的语句填写完整。 【说明】 某绘图系统存在Point、Line和Square这三种图元,它们具有Shape接口,图元的类图关系如图5-10所示。
admin
2012-12-10
29
问题
阅读以下关于某绘图系统的技术说明、部分UML类图及C++程序,将C++程序中(1)~(6)空缺处的语句填写完整。
【说明】
某绘图系统存在Point、Line和Square这三种图元,它们具有Shape接口,图元的类图关系如图5-10所示。
现要将Circle图元加入此绘图系统以实现功能扩充。已知某第三方库已经提供XCircle类,且完全满足系统新增的Circle图元所需的功能,但XCircle不是由Shape派生而来,它提供了的接口不被系统直接使用。【C++代码5-1】既使用了XCircle又遵循了Shape规定的接口,即避免了从头开发一个新的Circle类,又可以不修改绘图系统中已经定义的接口。【C++代码5-2】根据用户指定的参数生成特定的图元实例,并对它进行显示操作。
该绘图系统定义的接口与XCircle提供的显示接口及其功能如表5-13所示。
【C++代码5-1】
class Circle: public (1) {
Private;
(2) m_circle;
Public;
void display(){
m_circle. (3)
}
};
【C++代码5-2】
class Factory{
public;
(4) getShapeInstance(int type){ //生成特定类实例
Switch(type){
case 0: return new Point;
case 1: return new Rectangle;
case 2: return new Line;
case 3: return new Circle;
default: return NULL;
}
}
};
void main(int argc, char *argv[]){
if(argc !=2){
cout<<"error parameters!"<<endl;
return;
}
int type=atoi(argv[1]);
Factory factory;
Shape *s;
s=factory.(5);
if(s==NULL){
cout<<"Error get the instance!"<<endl;
return;
}
s->display();
(6);
Return;
}
选项
答案
(1)Shape (2)XCircle (3)displayIt() (4)Shape* (5)getShapeInstance(type) (6)ddete s
解析
这是一道考查用接口实现类的功能扩充的程序分析题。本试题的解答思路如下。
由于C++具有多继承性,因此在C++实现中,通常采用多继承来代替接口。
由题干关键信息“某绘图系统存在Point、Line和Square 3种图元,它们具有Shape接口……现要将Circle图元加入此绘图系统以实现功能扩充”可知,试题明确要求Circle具有Shape接口,因此(1)空缺处应填入“Shape”。
由于【C++代码5-1】既使用了XCircle,又遵循了Shape规定的接口,即重用XCinle类而不用从头开发一个新的Circle类。因此,凡是Circle类实现Shape的接口时,都应调用相应的XCircle类提供的方法。即(2)空缺处应填入“Xcircle”,(3)空缺处应填入“displayIt()”。
通过阅读【C++代码5-2】程序,由于(5)空缺处调用factory对象的方法,而类Factory只有一个方法为getShapeInstance,因此(5)空缺处应填入“getShapeInstance(type)”。其中,参数type为用户运行程序时指定的参数,表明需要生成哪种类型的对象。
同理,由于s是Shape*类型,因此(4)空缺处所在的语句“getShapeInstance(int type)”的返回值类型为Shape*,即(4)空缺处应填入“Shape*”。
由于程序退出前需要释放指针s所占用的内存空间,因此(6)空缺处应填入“delete s”。
转载请注明原文地址:https://jikaoti.com/ti/nbW7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
某村领导要求信息处理技术员估计该村一池塘中的鱼的大致数量。该技术员想出了一个办法:先从池塘中捕出30条鱼,在每条鱼身上做一记号后,又放回池塘。几天后,再从该池塘中捕出40条鱼,发现其中有2条是有记号的。因此,他估计该池塘鱼的数量大致为(68)条(假设这几天
在Windows系统的资源管理器中,文件和文件夹可以采用多种形式显示,但不能以(40)形式显示。
下列IP地址属于C类地址的是(17)。
在Excel2007中,如果在A1单元格输入“计算机”,在A2单元格输入“软件资格考试”,在A3单元格输入“=A1&A2”,按回车键后,结果为______。
在Windows7中,若删除桌面上某个应用程序的快捷方式图标,则(31)。
企业上云就是企业采用云计算模式部署信息系统。企业上云已成为企业发展的潮流,其优势不包括()。
某一个PPTX文档,共有8张幻灯片,现选中第4张幻灯片,进行改变幻灯片背景设置后,单击“应用”按钮,则________________。
程序员一般用(7)软件编写和修改程序。
在Windows系统中,控制面板的功能不包括______。
某PPT文件共有8张幻灯片,现选中第6张幻灯片,对其设置新的背景颜色,单击“应用”按钮后,则()。
随机试题
设函数f(x)是连续函数,且=2,φ(x)=f(xt)dt,求:讨论φ′(x)的连续性.
依据我国《婚姻法》,男性的结婚年龄不得早于()
腹部损伤时最易受损伤的脏器是_______。
高血压合并消化性溃疡者宜选用的药是
下列各项中,事业单位会计期末应结转记入“事业结余”的是()。
M国F汽车集团在经历了10余年的全面扩张之后,由于市场变化及公司竞争力下降,业绩全面下滑。集团进行了重大战略调整,即从战略扩张改为战略收缩,只专注于北美市场,专注于其自有的核心品牌,以改变该集团地域性品牌分割状态。集团相继出售了旗下几个欧洲高端品牌,F汽车
关于人民法院对罪犯判处没收财产的处罚,下列表述正确的是:
Ifitwereonlynecessarytodecidewhethertoteachelementarysciencetoeveryoneonamassbasisortofindthegiftedfewan
Itisobviousthatithasbeentoolatetotakeaction.
Oncetherewasawealthyman,whohadabiggardenfulloffruittrees.Afterthefruitswere【C1】______,heusedtosharesomef
最新回复
(
0
)