首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明和C++代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合,将小对象组合成复杂的大对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包
阅读下列函数说明和C++代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合,将小对象组合成复杂的大对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包
admin
2014-10-11
35
问题
阅读下列函数说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
[Java源程序:一个简单的Web服务器]/************************************************************//*WebServer.java*//******
阅读以下说明,回答问题1至问题3,将解答填入答题纸对应的解答栏内。说明网络解决方案如图4-1所示。该网络原先使用的是国外品牌的交换机,随着网络规模的扩大,增添了部分国产品牌的交换机,交换机1至交换机5均是国产10M/100M自适应交换机,交换机6
阅读以下说明,回答问题1至问题7。[说明]在IMail管理器中,选中MailUser邮件主机,然后在它右边的面板中选中General选项卡,出现邮件主机的配置窗口如图3-1所示。如果在IMail管理器中,选中Userl用户,然后在
同一个VLAN中的成员可以形成一个广播域,从而实现何种功能?将Switcbl的端口6划入v2的配置命令如下,请给出空白处的配置内容:Switch1(config)#interfacefastEthemet0/6(进入端口6配置模式)S
阅读以下说明,回答问题1~5。[说明]SSL(SecureSocketLayer)是目前解决传输层安全问题的一个主要协议,其设计的初衷是基于TCP协议之上提供可靠的端到端安全服务,SSL的实施对于上层的应用程序是透明的。应用SSL协议最广泛
阅读以下说明,回答问题1~6。[说明]某公司已有一个100用户的有线局域网。由于业务的发展,现有的网络不能满足需求,需要增加40个用户的网络连接,并在公司客户接待室连接网络以满足合作伙伴实时咨询的需求。现结合公司的实际情况组建无线局域网,具体拓扑
双绞线可以制作成直连线和交叉线两种形式。在上图中,两个交换机的UPLINK口相连,使用的双绞线制作成什么形式?连接交换机和计算机的双绞线制作成什么形式?阅读下面的配置信息,解释(5)处的命令。Switch#Switch#config
启动init进程前,不需要经过______步骤。A.LIIO加载内核B.检测内存C.加载文件系统D.启动网络支持根据上述inittab文件的内容,系统在引导过程结束前,至少还要执行______进程。A.rc.sy
启动init进程前,不需要经过______步骤。A.LIIO加载内核B.检测内存C.加载文件系统D.启动网络支持在系统控制台,______用Ctrl+Alt+Delete组合键来重新引导服务器。A.允许B
网络设计流程通常由以下五个阶段组成:A.确定网络物理结构B.确定网络逻辑结构C.对现有网络的体系结构进行分析D.安装和维护E.需求分析根据网络开发设计的过程,给出上述五个阶段的先后排序:(1)。将答
随机试题
我们党作为马克思主义政党的根本要求是()
下列哪种物质与吞噬细胞对细菌的杀伤降解作用无直接关系
以下属于中医诊断的基本原理的是
依据《重大动物疫情应急条例》,下列对疫区内易感动物采取的措施不正确的是
A.舒张期隆隆样杂音B.舒张期叹气样杂音C.连续性机器样杂音D.乐音样杂音E.收缩期菱形杂音动脉导管未闭会产生
关于管段的阻力数,下列说法错误的是()。
避雷带的搭接长度规定有()
《刑法》规定,犯欺诈发行股票、债券罪的个人,处5年以下有期徒刑或拘役。( )
根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写:namespacetest{publicdelegatevoidOnDBOperate();publicclassUserControlBase
Chinesepaperwasfirstmadefrom
最新回复
(
0
)