首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明和C++代码,将应填入(n)处的字句写在对应栏内。 [说明] 在一些大型系统中,大多数的功能在初始化时要花费很多时间,如果在启动的时候,所有功能(包括不用的功能)都要全面初始化的话,会导致应用软件要花很多时间才能启动。因此常
阅读下列函数说明和C++代码,将应填入(n)处的字句写在对应栏内。 [说明] 在一些大型系统中,大多数的功能在初始化时要花费很多时间,如果在启动的时候,所有功能(包括不用的功能)都要全面初始化的话,会导致应用软件要花很多时间才能启动。因此常
admin
2010-12-17
39
问题
阅读下列函数说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
系统交付后,修改偶尔会出现乱码的问题,该行为属于________________维护。
下图所示的二叉树进行顺序存储(根结点编号为1,对于编号为i的结点,其左孩子结点为2i,右孩子结点为2i+1)并用一维数组BT来表示,已知结点X、E和D在数组BT中的下标为分别为1、2、3,可推出结点G、K和H在数组BT中的下标分别为____________
程序运行过程中常使用参数在函数(过程)间传递信息,引用调用传递的是实参的()。
软件系统的安全性是信息安全的一个重要组成部分,针对程序和数据的安全性测试与评估是软件安全性测试的重要内容,()不属于安全性测试与评估的基本内容。
以下关于测试方法的叙述中,不正确的是_______。
驻留在多个网络设备上的程序在短时间内同时产生大量的请求消息冲击某Web服务器,导致该服务器不堪重负,无法正常响应其他合法用户的请求,这属于(9)。
计算机采用分级存储体系的主要目的是为了解决()的问题。
下图是________________设计模式的类图,该设计模式的目的是________________,图中,Decorator和Component之间是________________关系,ConcreteDecorator和Decorator之间是_
对于逻辑表达式(bufc[i]>223&&bufc[i]<240&&i+2<totalbytes),需要______个测试用例才能完成条件组合覆盖。
随机试题
女性,42岁,因头痛,牙龈肿胀伴渗血14天入院,体查:T38.3℃,中度贫血貌,皮肤散在出血点,牙龈普遍肿胀,有活动渗血,胸骨轻压痛,腹平软,肝脾肋下未触及,血象WBC2.80×109/L,Hb60g/L,RBC2.50×109/L,PLT30×109/L
由肝合成且依赖维生素K,被激活后,与蛋白S和V因子共同作用,裂解活化的凝血因子Va和Ⅷa,从而起到抗凝作用的物质是
关于过敏原皮肤试验出现假阴性原因不正确的是()
夸美纽斯是教育史上非常重要的一位教育家,他的众多教育思想对教育的发展起到了重要作用。下列关于夸美纽斯的论述正确的是()。
土家狗是一种仅仅在美国南部生活的无毛小型野兽。在人类定居美国南部之前,土家狗的天敌都不强大,因此土家狗在美国南部繁衍旺盛。当人类开始猎取它们之后,土家狗灭绝了。因此,肯定是人们对它们的猎取导致了其灭绝。下面哪一项如果为真,最能严重地削弱上文中的推理?(
阅读下面的文章,回答问题。“腾笼换鸟”是几年前我国一些沿海地区根据当地经济发展状况和国家转变经济发展方式大战略提出的区域经济战略。由于同际金融危机冲击和经济形势变化,这一战略没有来得及全面实施。有人质疑“腾笼换鸟”脱离我国的优势,迟滞地区经济发展
2008年,我国实现国内生产总值300670亿元,比上年增长9.0%。其中,第一、二、三产业增加值所占比例分别为11.31%,48.62%,40.07%。第一、二、三产业增加值增长率分别为5.5%,9.3%,9.5%。请问以下说明正确的是()。
TheInternetaffordsanonymitytoitsusers,ablessingtoprivacyandfreedomofspeech.Butthatveryanonymityisalsobehind
关系模型的数据操纵即是建立在关系上的数据操纵,一般有【】、增加、删除和修改4种操作。
WhydidZimbabwelosemorethan1.5millionhectaresofforestin2016?
最新回复
(
0
)