首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明和C++代码,将应填入(n)处的字句写在对应栏内。 [说明] 在一些大型系统中,大多数的功能在初始化时要花费很多时间,如果在启动的时候,所有功能(包括不用的功能)都要全面初始化的话,会导致应用软件要花很多时间才能启动。因此常
阅读下列函数说明和C++代码,将应填入(n)处的字句写在对应栏内。 [说明] 在一些大型系统中,大多数的功能在初始化时要花费很多时间,如果在启动的时候,所有功能(包括不用的功能)都要全面初始化的话,会导致应用软件要花很多时间才能启动。因此常
admin
2010-12-17
29
问题
阅读下列函数说明和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://jikaoti.com/ti/E4i7FFFM
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
下面关于防火墙功能的说法中,不正确的是(6)。
在开发一个字处理软件时,首先快速发布了一个提供基本文件管理、编辑和文档生成功能的版本,接着发布提供更完善的编辑和文档生成功能的版本,最后发布提供拼写和语法检查功能的版本,这里采用了()过程模型。
程序质量评审通常是从开发者的角度进行评审,其内容不包括____________。
测试成本控制的目标是使测试开发成本、测试实施成本和测试维护成本最小化,以下理解正确的是______。A.测试准备成本属于测试实施成本B.可以通过加强软件测试的配置管理来降低测试维护成本C.测试设计成本控制的目标是尽可能地减少测试总执行时间和所需的测试
统一过程(UP)是一种用例驱动的迭代式增量开发过程,每次迭代过程中主要的工作流包括捕获需求、分析、设计、实现和测试等。这种软件过程的用例图(Use Case Diagram)是通过(19)得到的。
将二进制序列1011011表示为十六进制,为______。
(41)不是易用性测试包括的内容。
在计算机系统中常用的输入/输出控制方式有无条件传送、中断、程序查询和DMA等。其中,采用______方式时,不需要CPU控制数据的传输过程。
“<titlestyle="italic">science</title>”是XML中一个元素的定义,其中元素的内容是(29)。
随机试题
在戏剧史上,从三棱景柱的出现到立体布景的使用,从煤气灯照明到电脑灯的布控,都曾使戏剧演出的总体面貌产生巨大变化。剧场科技、智能舞台、多媒体、声学、光学、电学技术的广泛运用,丰富了当代舞台的表现手段和艺术面貌,并且为人们带来全新的审美体验。有文化学者据此推断
具有平喘、强心、利尿作用的药物是
实验室所有的记录应予以安全保护和()。
公路照明系统由低压电源线、低压配电线、灯杆、光源和灯具及()组成。
某市高尔夫球艺有限公司为一般纳税人,下设高尔夫球具生产厂、高尔夫球包厂、高尔夫球生产厂,为国内外客户提供专业的高尔夫个性化产品。2009年10月发生业务如下:(1)购进原材料一批,取得防伪税控系统开具的增值税专用发票上注明价款230万元,专用发票已
紫菜:米饭:寿司
陈先生:未经许可侵入别人的电脑,就好像开偷来的汽车撞伤了人,这些都是犯罪行为。但后者性质更严重,因为它既侵占了有形财产,又造成了人身伤害;而前者只是在虚拟世界中捣乱。林女士:我不同意。例如,非法侵入医院的电脑,有可能扰乱医疗数据,甚至危及病人的生命。因此
HernoveldepictsafuturisticAmerica.
Asadevelopingcountry,wemustkeep______withtherapiddevelopmentoftheworldeconomy.
A、Providedvideoinformationofclassroomteaching.B、Collectedinformationfromtheirstudents.C、Askedstudentstocommenton
最新回复
(
0
)