首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C++代码,将应填入(n)处的字句写上。 [说明] 现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显不display()。 需要新增图形Circle,又已知有类XX
阅读以下说明和C++代码,将应填入(n)处的字句写上。 [说明] 现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显不display()。 需要新增图形Circle,又已知有类XX
admin
2010-12-17
24
问题
阅读以下说明和C++代码,将应填入(n)处的字句写上。
[说明]
现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显不display()。
需要新增图形Circle,又已知有类XXCircle实现了所需要实现的功能:显示displayIt()。为了继承自shape以提供统一接口,又不希望从头开发代码,希望使用XXCircle。这样将XXcircle作为Circle的一个属性,即Circle的对象包含一个XXCircle对象。当一个Circle对象被实例化时,它必须实例化一个相应的XXCircle对象: Circle对象收到的做任何事的请求都将转发给这个XXCircle对象。通过这种称为Adapter模式,Circle对象就可以通过“让XXCircle做实际工作”来表现自己的行为了。图6-1显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。
[图6-1]
[C++代码]
class Shape{
public:
(1) void display()=0;
};
class Line:public Shape{//省略具体实现
};
class Square:public Shape{//省略具体实现
};
class XXCircle{
public:
void displayIt(){
//省略具体实现
}
//省略其余方法和属性
};
class Circle:public Shape{
private:
XXCircle *pxc;
public:
Circle();
void display();
};
Circle::Circle(){
pxc=(2);
}
void Circle::display()
{
pxc->(3);
}
class Factory{
public:
(4) getshapeInstance(int type){//生成特定类实例
switch(type){
case 1:return new Square;
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=factory. (5);
if(s==NULL){
cout<<"Error get the instance!"<<endl;
return;
}
s->display();
delete s;
return;
}
(5)
选项
答案
getShapeInstance(type)
解析
由“=0”可轻易判知display()函数是一个纯虚函数,因此空(1)应填virtual。
由题设,Circle实例化时,须先实例化一个XXCircle对象,而pxc正好也是XXCircle对象指针,故空(2)应填new XXCircle。
Circle在此充当适配器的角色,它所做的就是将消息转发给XXCircle实例,display()是“显示”消息,故调用XXCircle的相应方法,故空(3)应填displayIt()。
方法getShapelnstance(int type)的返回值有new Line、new Square以及new Circle,参照类的层次结构,可得空(4)应填Shape*。注意是指针。
Factory类仅定义了一个方法getShapeInstance,而此处语义正是取得一个形状进行显示,故空(5)应填getShapeInstance(type)。
转载请注明原文地址:https://kaotiyun.com/show/kvDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
测试过程中,正确的测试顺序应该是()。①单元测试②集成测试③系统测试
(42)不是文档测试包括的内容。
某企业职工关系EMP(E_no,E_name,DEPT,E_addr,E_tel)中的属性分别表示职工号、姓名、部门、地址和电话;经费关系FUNDS(E_no,E_limit,E_used)中的属性分别表示职工号、总经费金额和已花费金额。若要查询部门为“开
某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续时间(天),则完成该项目的最少时间为________________天。活动FG的松弛时间为________________天。
以下关于软件质量属性的叙述中,不正确的是________________。
假设某计算机系统中进程的三态模型如下图所示,那么图中的a、b、c、d处应分别填写(13)________________。
操作系统通过______来组织和管理外存中的信息。
软件测试信息流的输入包括______。①软件配置(包括软件开发文档、目标执行程序、数据结构)②开发工具(开发环境、数据库、中间件等)③测试配置(包括测试计划、测试用例、测试驱动程序等)④测试工具(为提高软件测试效率,使用测试
下面为C语言程序,边界值问题可以定位在(45)。 int data(3), int i, for(i=1, i<=3, i++)data(i)=100
以下关于数据流图的叙述中,不正确的是(37)________________。
随机试题
坝体质量可控,渗透性强,浸润线低,坝体稳定性好的筑坝方式是指()方式。
A.排尿困难,点滴不畅B.小便时滴沥刺痛C.两者皆是D.两者皆非癃闭的主症是
土地所有权价格是一种权利的完全转移(或买断)的市场代价。()
根据《人民币银行结算账户管理办法》的规定,存款人申请开立一般存款账户,应向银行出具的证明文件是()。
关于全额累进税率和超额累进税率,下列说法正确的是( )。
企业因员工工资的集中发放而进行筹资的动机属于()。
甲公司是一个材料供应商,拟与乙公司建立长期合作关系,为了确定对乙公司采用何种信用政策,需要分析乙公司的偿债能力和营运能力为此,甲公司收集了乙公司2013年度的财务报表,相关的财务报表数据以及财务报表附注中披露的信息如下:(1)资产负债表项目(2)利润
下列情况中可以适用旅行社质量保证金进行赔偿的有()。
从历史上看,中国人居环境在发展过程中,不断______各地区、各民族以及异国的人居智慧,不断自我更新,成为一种原创的人居模式。它的发展始终有一个主旋律,那就是坚持中国传统,不断吸收包容,在此基础上不断创造。在城乡建设快速发展的今天,城市建设中的“中国精神”
在面向对象的系统中,系统责任的良好分配原则是(7)。软件配置项是软件配置管理的对象,即软件工程过程中产生的(8)。软件测试计划开始于需求分析阶段,完成于(9)阶段。
最新回复
(
0
)