首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明和C++代码,将应填入(n)处的字句写在对应栏内。 [说明] 在一些大型系统中,大多数的功能在初始化时要花费很多时间,如果在启动的时候,所有功能(包括不用的功能)都要全面初始化的话,会导致应用软件要花很多时间才能启动。因此常
阅读下列函数说明和C++代码,将应填入(n)处的字句写在对应栏内。 [说明] 在一些大型系统中,大多数的功能在初始化时要花费很多时间,如果在启动的时候,所有功能(包括不用的功能)都要全面初始化的话,会导致应用软件要花很多时间才能启动。因此常
admin
2010-12-17
48
问题
阅读下列函数说明和C++代码,将应填入(n)处的字句写在对应栏内。
[说明]
在一些大型系统中,大多数的功能在初始化时要花费很多时间,如果在启动的时候,所有功能(包括不用的功能)都要全面初始化的话,会导致应用软件要花很多时间才能启动。因此常将程序设计成到了实际要使用某种功能的阶段才初始化该功能。
以下示例展示了Proxy(代理)模式,PrinterProxy类执行一些比较“轻”的方法,需要真正执行“重”的方法时才初始化Print类。图5-1显示了各个类间的关系。
[图5-1]
[C++代码]
class Printable{
public:
virtual void setPrinterName(string name)=0;
virtual string getprinterName()=0;
virtual void print(string name)=0;
};
class Printer:public Printable{
private:
string name;
public:
Printer(string name){
cout<<"正在产生Printer的对象实例"<<endl;
this->name=name;
}
void setPrinterName(string name){
this->name=name;
}
string getPrinterName(){
return name;
}
void print(string msg){
cout<<"======="<<name<<"==========="<<endl;
cout<<msg<<endl;
}
};
class printerproxy :public (1) {
private:
String name;
Printer *real;
public:
PrinterProxy(string name){
(2)=NULL;
this->name=name;
}
void setPrinterName(string name){
if((3))real->setPrinterName(name);
this->name=name;
}
string getPrinterName(){
return name;
}
void print(string msg){
(4);
real->print(msg);
}
void realize(){
if(real==NULL)real=(5);
}
};
(5)
选项
答案
new Printer(name)
解析
由类图可知PrinterProxy类是Printable的子类,因此应声明为继承自Printable,故空(1)应填Printable。
real是一个Printer对象指针,应该进行初始化,初始化工作是在构造函数中完成的,若不进行初始化的话,realize()方法将不可预期,故空(2)应填real。
real是一个指针,调用之前当然得先判断real是否为空指针,只有不是空指针才能进行调用,否则将出现不可预期的结果,因此空(3)应填real!=NULL。
在执行打印时,需要保证已经正确生成了real对象,否则打印将无法完成,这也正是Proxy的核心所在,到真正需要打印时,才生产real对象,因此空(4)应填realize()。
real是Printer对象指针,空(5)是生成一个Printer对象,注意Printer类的构造函数是Printer(string name),故应填new Printer(name)。
转载请注明原文地址:https://kaotiyun.com/show/NqDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
对于逻辑表达式(((a|b)‖(c>2))&&d<0),需要________________个测试用例才能完成条件组合覆盖。
堆是一种数据结构,分为大顶堆和小顶堆两种类型。大(小)顶堆要求父元素大于等于(小于等于)其左右孩子元素。则________________是一个小顶堆结构。堆结构用二叉树表示,则适宜的二叉树类型为________________。对于10个结点的小顶堆,其
程序计数器(PC)是_______中的寄存器。
防火墙不具备__________功能。
一个软件开发过程描述了“谁做”、“做什么”、“怎么做”和“什么时候做”,RUP用(16)表述“谁做”。
统一过程(UP)是一种用例驱动的迭代式增量开发过程,每次迭代过程中主要的工作流包括捕获需求、分析、设计、实现和测试等。这种软件过程的用例图(Use Case Diagram)是通过(19)得到的。
对于逻辑表达式((a||b)||(c&&d)),需要()个测试用例才能完成条件组合覆盖。
下图是①设计模式的类图,该设计模式的目的是②,图中,Abstraction和RefinedAbstraction之间是③关系,Abstraction和Implementor之间是④关系。①处应填入?
“<titlestyle="italic">science</title>”是XML中一个元素的定义,其中元素的内容是(29)。
阅读以下说明,回答以下问题,将解答填入答题纸对应的解答栏内。【说明】某学校有三个校区,校区之间最远距离达到61km,学校现在需要建设校园网,具体要求如下:校园网通过多运营商接入互联网,主干网采用千兆以太网将使每个校区的中心节点连起来,每
随机试题
通过(),分析和论证施工成本目标实现的可能性,并对施工成本目标进行分解。
每个报警阀组的最不利点洒水喷头处应设末端试水装置,其他防火分区、楼层均应设直径为()mm的试水阀。
社会主义法治理念具有丰富的内涵。其中作为社会主义核心价值观的重要内容,体现了社会主义和谐社会的基本特征,从而也是社会主义法治的价值追求的是()
巢元方称遍历关节疼痛者为
关于Ⅰ型精神分裂症,下列何种说法是错误的
生产车间连续输送系统由哪几部分组成?
Windows NT操作系统提供了一个良好的用户交互界面,它是( )。
Weweregladtoseethatsomeofourfindings(apply)______totheirresearchsuccessfully.
GoodandHungryFast-foodfirmshavetobeathick-skinnedbunch.Healthexpertsregularlylambast(抨击)themforpeddling(售卖
A、Abunchofflowersisnotenough.B、Flowersarepracticalchoice.C、Somethingconcerningbabyismorepreferable.D、Babyshamp
最新回复
(
0
)