首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C++代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显示display()。需要新增图形Circle,又已知有类XXCircle实
阅读以下说明和C++代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显示display()。需要新增图形Circle,又已知有类XXCircle实
admin
2014-10-11
58
问题
阅读以下说明和C++代码,将应填入(n)处的字句写在答题纸对应栏内。
【说明】现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显示display()。需要新增图形Circle,又已知有类XXCircle实现了所需要实现的功能:显示displaylt()。为了继承自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:publ ic Shape(//省略具体实现
};
class Square:public Shape{//省略具体实现
};
ClasS XXCircle(
public:
void displayIt()(
//省略具体实现
}
//省略其余方法和属性
};
Class Circle:publ iC 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:returrl flew C1rcle;
default:return NULL;
}
}
};
void main(int argc,char’argv[]){
i f(argc!=2){
tout<<“error parameters!”<
return;
}
int type:atoi(argv[1]);
Factory factory;
Shape。S=factory.(5);
if(S==NULL){
cout<<*Error get the instance!“<
return;
}
s一>display();
delete s;
rettlrn;
}
选项
答案
(1)virtual (2)new XXCircle (3)displayIt() (4)Shape*: (5)getShapeInstance(type)
解析
由“=0”可轻易判知display()函数是一个纯虚函数,因此空(1)应填virtual。由题设,Circle实例化时,须先实例化一个XXCircle对象,而pxciE好也是XXCircle对象指针,故空(2)应填new XXCircle。Circle在此充当适配器的角色,它所做的就是将消息转发给XXCircle实例,display()是“显示”消息,故调用XXCircle的相应方法,故空(3)应填displayIt()。方法getShapeInstance(1int type)的返回值有new Line、new Square以及new circle,参照类的层次结构,可得空(4)应填Shape*。注意是指针。Factory类仅定义了一个方法getShapeInstance,而此处语义正是取得一个形状进行显示,故空(5)应填getShapeInstance(type)。
转载请注明原文地址:https://kaotiyun.com/show/jaDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
在C程序中,对于如下的两个for语句,其运行后a和b的值分别为________。for(inta=0;a=0,a++);for(intb=0;b=0;++b);
某计算机的主存储器以字节为单位进行编址,其主存储器的容量为1TB,也就是______。
虚拟存储技术使_______密切配合来构成虚拟存储器。
造成故障1的原因是什么?如何解决?1.将故障2中(1)和(2)两处合适的答案填入答题纸相应的解答栏内。2.故障2如何解决?
限制MailUser邮件主机里每个用户的邮箱大小不超过10MB,如何配置?限制MailUser邮件主机里每个用户邮箱里所能存放的最多邮件数量不超过20个,如何配置?
将图2-1中(1)和(2)空缺名称填写在应的位置。ADSL有哪两种IP地址的分配方式?
阅读以下说明,回答问题1至问题6。说明ADSL是接入Internet的一种宽带技术。图2-1为一台带网卡的PC机采用ADSL接入Internet的网络结构图。
双绞线可以制作成直连线和交叉线两种形式。在上图中,两个交换机的UPLINK口相连,使用的双绞线制作成什么形式?连接交换机和计算机的双绞线制作成什么形式?阅读下面的配置信息,解释(5)处的命令。Switch#Switch#config
网络设计流程通常由以下五个阶段组成:A.确定网络物理结构B.确定网络逻辑结构C.对现有网络的体系结构进行分析D.安装和维护E.需求分析根据网络开发设计的过程,给出上述五个阶段的先后排序:(1)。将答
阅读以下说明和Java程序代码,将应填入(n)处的字句写在对应栏内。SMTP是发送E-mail的协议,常用以下5条命令发送E-mail:HELO,与SMTP服务器握手,传送本机域名;MAILFROM:,传送发信者的信箱名称;RCP
随机试题
组织文化
比较身高和体重两组数据变异度大小,宜采用
下列叙述中哪项不属于含氧药物的代谢
【背景资料】某施工单位中标新建普速铁路综合工程第1标段。主要内容有路基、桥涵、隧道、电力、电力牵引供电、通信和信号工程。部分工程情况如下:1号特大桥长580m,跨越二级航道,采用三跨预应力钢筋混凝土连续箱梁。主墩位于水深8.0~10.0
在下列各情况中,不影响会计师事务所独立性的是( )。
VBA中用实际参数m和n调用过程f(a,b)的正确形式是()。
A、 B、 C、 C(A)听到here,不要将其与“归还”混淆。(B)开头使用yes进行了肯定,但是紧接着的can与提问不符。(C)说的是现在还在我这儿,下午会归还的,所以正确。
Accordingtothespeaker,evenAmericaissufferingfromeconomicdepression,theAmericaneconomywillsoonberecoveredifAme
RisingInequalityIsHoldingBacktheU.S.Economy[A]Inannouncinghisrunforthepresidencylastmonth,JebBushhassetan
期货交易中缴纳的保证金通常为合约价值的()。[2009年11月真题]
最新回复
(
0
)