首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明和C++代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合,将小对象组合成复杂的大对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包
阅读下列函数说明和C++代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合,将小对象组合成复杂的大对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包
admin
2014-10-11
77
问题
阅读下列函数说明和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://www.kaotiyun.com/show/G4DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
甲怀疑乙发给他的信息已遭人篡改,同时怀疑乙的公钥也是被人冒充的。为了消除甲的疑虑,甲、乙需要找一个双方都信任的第三方,即______来签发数字证书。
以下关于CPU与I/O设备交换数据所用控制方式的叙述中,正确的是_______。
造成故障1的原因是什么?如何解决?1.将故障2中(1)和(2)两处合适的答案填入答题纸相应的解答栏内。2.故障2如何解决?
阅读以下说明,回答问题1~4。[说明]FTTx+LAN是实现宽带接入的常用方法,基本结构如下图所示。
阅读下列说明,回答问题1至问题6。[说明]某公司的业务员甲与客户乙通过Internet交换商业电子邮件(以下简称为“邮件”)。为保障邮件内容的安全,双方约定采用安全电子邮件技术对邮件内容进行加密和数字签名。安全电子邮件技术的实现原理如图4
启动init进程前,不需要经过______步骤。A.LIIO加载内核B.检测内存C.加载文件系统D.启动网络支持Linux系统运行级别3工作在______状态。A.单用户字符模式B.多用户字符模式
网络设计流程通常由以下五个阶段组成:A.确定网络物理结构B.确定网络逻辑结构C.对现有网络的体系结构进行分析D.安装和维护E.需求分析根据网络开发设计的过程,给出上述五个阶段的先后排序:(1)。有线
网络设计流程通常由以下五个阶段组成:A.确定网络物理结构B.确定网络逻辑结构C.对现有网络的体系结构进行分析D.安装和维护E.需求分析根据网络开发设计的过程,给出上述五个阶段的先后排序:(1)。为上
IIS安装的硬盘分区最好选用NTFS格式,是因为(1)和(2)。A.可以针对某个文件或文件夹给不同的用户分配不同的权限B.可以防止网页中的Applet程序访问硬盘中的文件C.可以使用系统自带的文件加密系统对文件或文件夹进行加密
随机试题
患者,女性,20岁,临床诊断为缺铁性贫血。该患者红细胞直方图的特点应该为
下列关于过敏性紫癜的描述哪项是不正确的
甲国某船运公司的一艘核动力商船在乙国港口停泊时发生核泄漏,使乙国港口被污染,造成严重损害后果。甲、乙两国都是《关于核损害的民事责任的维也纳公约》及《核动力船舶经营人公约》的缔约国,根据上述公约及有关规则确定,乙国此时应得到7800万美元的赔偿,但船运公司实
下列关于会计电算化档案保管安全的说法中,正确的是()。
SmithSusan.Toolsof20’s,1929.Reprint,DetroitFreePress,1971.Smiths.Inst.ShakerFurnitureandObjectsfromtheAndrewsCollect
下列哪一项符合从国家、社会和居民需求的角度分类的社区教育内容?()
马克思指出:“一个社会即使探索到本身运动的自然规律,……它还是既不能跳过也不能用法令取消自然的发展阶段。但是它能缩短和减轻分娩的痛苦。”这表明()。
艺术批评的核心问题是艺术批评的()
社会规律是人们自己的“社会行动的规律”。对这句话理解正确的有
【B1】【B9】
最新回复
(
0
)