首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明和C++代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合,将小对象组合成复杂的大对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包
阅读下列函数说明和C++代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合,将小对象组合成复杂的大对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包
admin
2014-10-11
101
问题
阅读下列函数说明和C++代码,将应填入(n)处的字句写在答题纸对应栏内。
【说明】
在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合,将小对象组合成复杂的大对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一个标题、一串字符以及一些有项目符号的项目。Builder类规定组成文件的方法,Director类利用这个方法产生一份具体的文件。图5—1显示了各个类间的关系。
【图5—1】
以下是C++语言实现,能够正确编译通过。
【C++代码】
ClasS Buiider{
publiC:
virtual void makeTitle(string title)=0;
virtual void makeString(string str)=0;
virtual void makeItems(1)items)=0;
virtual string getResult()=0;
};
ClasS Director{
private:
(2)buiider;
public:
Director(Buiider*buiider){
thiS一>buiider=buiIder;
}
string construct(){
vector
items;
items.push—back(“早安”);items.push—back(“午安”);
buiider一>makeTitle(“Greeting”);
bui Ider一>makeString(“从早上到白天结束”);
buiider一>makeItems(items);
buiIder一>makeString(“到了晚上”);
(3)//清空items向量
items.push—back(“晚安”);items.push—back(”好梦”);
buiIder一>makeItems(items);
return buiider一>getResult();
}
};
class TextBuiider:public (4) {
private:
String buffer;
publiC:
TextBuiider(){
buffer=**;
}
void makeTitle(String title){
buffer += ”=====:=================================\n”;
buffer+=“[“+title+”]\n”;
buffer+=“\n”;
}
void makeString(string str)(
buffer+=”■” +Str+“\n”;
buffer+=“\n”:
}
void makeItems(vector
items){
vector
::iterator it;
for(it=items.begin();it!=items.end();it++){
buffer+=“.”+‘it+“\n”;
}
buffer+=“\n”;
}
string getResult(){
buffer+= “=====================\n”;
return buffer;
}
};
int main()
{
Director*director=new Director(new TextBuilder());
string result=(string)director一>(5);
cout<
return 0;
}
选项
答案
(1)vector
(2)Builder* (3)items.clear() (4)Builder (5)construct()
解析
首先来看空(2),由名字可猜想builder是一个Builder类对象,由构造函数中的语句this一>builder=builder;及形参声明Builder*builder,可判知空(2)应填Builder*。由注释可知空(3)是用来清空iterns向量的,items是一个vector
对象,此处并未提供清空方法,应该是调用库函数,故应调用items.clear()。现在来看空(1),由语句builder一>makeltems(iterns);及vector
items;可知,空(1)应填vector
。继续看空(4),由类图知,TextBuilder是Builder的子类,因此此处应填Builder,声明继承关系。空(5)是真正进行文件的构造,应填construct()。事实上,Director类仅提供了该方法,自然是调用该方法。
转载请注明原文地址:https://kaotiyun.com/show/G4DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
函数main()、f()的定义如下所示。调用函数f()时,第一个参数采用传值(callbyvalue)方式,第二个参数采用传引用(callbyreference)方式,main()执行后输出的值为_______。
在应用服务器关机的情况下,公司员工能连接上因特网吗?简要解释。在路由器和ISDN之间需要加入终端适配器(TA)吗?试说明在什么情况下需要加入TA。
造成故障1的原因是什么?如何解决?1.路由器2上采用了NAT技术。NAT中的动态地址翻译和IP地址伪装有什么区别?2.图4-2是路由器2上的地址伪装表,将图4-2中(1)~(5)处空缺的信息填写在相应位置。
造成故障1的原因是什么?如何解决?1.将故障2中(1)和(2)两处合适的答案填入答题纸相应的解答栏内。2.故障2如何解决?
阅读以下说明,回答问题1至问题7。[说明]在IMail管理器中,选中MailUser邮件主机,然后在它右边的面板中选中General选项卡,出现邮件主机的配置窗口如图3-1所示。如果在IMail管理器中,选中Userl用户,然后在
双绞线可以制作成直连线和交叉线两种形式。在上图中,两个交换机的UPLINK口相连,使用的双绞线制作成什么形式?连接交换机和计算机的双绞线制作成什么形式?阅读下面的配置信息,解释(7)处的命令。Switch#configtSwitch(
认真阅读下列说明信息,回答问题1至问题5。[说明]在一个基于TCP/IP协议的网络中,每台主机都有一个IP地址,根据获得IP地址的方式不同,可以分为静态IP和动态IP。例如:用宽带入网,会有一个固定的IP地址,每次连入Internet,你的IP地
阅读下面的说明。[说明]下图是某公司利用Internet建立的VPN。
根据图3-1所给出的网络连接方式及相关的网络参数,区域(A)与区域(B)中计算机的网络参数配置(如图3-2所示)为:区域(A)计算机“IP地址”(范围):(1):区域(A)计算机“子网掩码”;(2);区域(A)计算机“默认网关”:(
启动init进程前,不需要经过______步骤。A.LIIO加载内核B.检测内存C.加载文件系统D.启动网络支持在系统控制台,______用Ctrl+Alt+Delete组合键来重新引导服务器。A.允许B
随机试题
种族的a.r_____
A.细胞色素a3B.细胞色素b560C.细胞色素p450D.细胞色素c1在线粒体中电子传递给氧的是
感染的含义是
刘先生,30岁。因鼻部疖挤压后出现寒战、高热、头痛,眼部周围组织红肿、疼痛,应考虑并发
单位工程竣工结算是指施工单位在完成单位工程任务后,按照合同规定,在原施工图预算的基础上根据实际发生编制调整预算,向建设单位办理最后的工程价款结算。下列有关工程竣工结算的主要作用有误的是()。
在制定材料消耗定额时,可以用来确定材料损耗率的方法是()。
使生产者与生产资料相分离,将货币资本迅速集中于少数人手中的历史过程就是()
设f(x,y)=(Ⅰ)求;(Ⅱ)讨论f(x,y)在点(0,0)处的可微性,若可微并求af|(0,0).
Thesearchforthelostshipmustbe_____becauseofpoorweather.
Shoppingforclothesisnotthesameexperienceforamanasitisforawoman.Amangoesshoppingbecauseheneedssomething.
最新回复
(
0
)