首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C++代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显示display()。需要新增图形Circle,又已知有类XXCircle实
阅读以下说明和C++代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显示display()。需要新增图形Circle,又已知有类XXCircle实
admin
2014-10-11
31
问题
阅读以下说明和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://jikaoti.com/ti/WUi7FFFM
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
以下______不属于单元测试中模块接口测试的测试内容。
虚拟存储技术使_______密切配合来构成虚拟存储器。
通常VLAN有静态和动态2种实现方式,这2种方式分别是如何实现的?各有什么特点?Switch1采用的是哪种实现方式?填充VLAN信息表如表9-3所示,将答案填写在答题纸相应位置。
造成故障1的原因是什么?如何解决?1.路由器2上采用了NAT技术。NAT中的动态地址翻译和IP地址伪装有什么区别?2.图4-2是路由器2上的地址伪装表,将图4-2中(1)~(5)处空缺的信息填写在相应位置。
同一个VLAN中的成员可以形成一个广播域,从而实现何种功能?若网络用户的物理位置需要经常移动,应采用什么方式划分VLAN?
根据图3-1所给出的网络连接方式及相关的网络参数,区域(A)与区域(B)中计算机的网络参数配置(如图3-2所示)为:区域(A)计算机“IP地址”(范围):(1):区域(A)计算机“子网掩码”;(2);区域(A)计算机“默认网关”:(
某交换机的配置命令如下,根据命令后面的注释,填写(1)~(3)处的空缺内容,完成配置命令。Switch(config)#(1)//将交换机命名为Sw1Swl(config)#interfacevlan1Swl(config
解释图10-2中的PVC和SVC。以下是LANE工作过程,其顺序已乱,请排序。①LEC接着便向其他LEC广播这个响应。②在地址表中含有被称为MAC地址的LEC向LEC作出响应。③LES发送多点组播至网络上的其他LEC。④
对一个大型校园网工程进行网络备份系统设计时,应考虑解决哪些主要的问题?请用150字以内的文字简要说明。备份就是对数据文件的备份,备份网络文件就是将所需要的文刊:复制到光盘、磁带或磁盘等存储介质上。这种备份网络文件的思路是否正确?请用200字以内的文字简
随机试题
药师的行为需给药学职业带来
蒽醌类衍生物多具有酚羟基,故有酸性,易溶于碱性溶剂,蒽醌类衍生物酸性强弱顺序是
下面属于钢筋混凝土结构构造裂缝正确的防治是()。
下列各项中,可能引起企业投资系统性风险的因素有()。
按照资金来源渠道不同,可将筹资分为()。
《望海潮.东南形胜》是柳永盛赞苏州的一首词。()
班级组织建构的首要原则是()。
根据下表提供的信息回答下面问题
A、 B、 C、 D、 A提示框中每个图形是由两个相似或相同构图元素交叉构成,问题框中每个图形是由两个相同或相似构图元素不相交构成。故选A。
关于ARM处理器的MMU,以下说法错误的是()。
最新回复
(
0
)