A-A+

阅读以下说明和C++代码 将应填入(n)处的字句写在答题纸的对应栏内。说明 通常情况下 用户

2022-08-05 19:59:41 问答库 阅读 171 次

问题详情

阅读以下说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
说明
通常情况下,用户可以对应用系统进行配置,并将配置信息保存在配置文件中。应用系统在启动时首先将配置文件加载到内存中,这些内存配置信息应该有且仅有一份。下面的代码应用了单身模式(Singleton)以保证Configure类只能有一个实例。这样, Configure类的使用者无法定义该类的多个实例,否则会产生编译错误。
C++代码
#include<iostream.h>
class Configure{
(1):
Configure(){} //构造函数
public:
static Configure*Instance();
public:
int GetConf~ureData(){return data;} //获取配置信息
int SetConfigureDate(int m_data)
{data=m_data; return data;} //设置配置信息
private:
static Configure*_instance;
int data; //配置信息
};
(2)=NULL;
Configure*Configure∷Instance(){
if(_instance=NULL){
_instance=(3);
//加载配置文件并设置内存配置信息,此处省略
}
return (4);
}
void main()(
Configure*t=NULL;
t=(5);
int d=t→GetConfigureData();
//获取配置信息后进行其他工作,此处省略
}

参考答案

正确答案:(1)private(2)Configure*Configure∷_inStance(3)new Configure(4)_instance(5)Configure∷Instance()
(1)private(2)Configure*Configure∷_inStance(3)new Configure(4)_instance(5)Configure∷Instance() 解析:根据题目要求Configure类为单身模式,即只能产生一个实例。为了实现这一目标常用的方法是:第一种,把类本身的构造函数加访问权限控制符private让外部方法无法直接调用它:第二种,声明一个此类的静态指针,用于指向仅能产生的那一个实例;第三种,声明一个public的返回结果为此类的方法,供外界调用。
本题(1)空处要求填写构造函数的访问权限public、protected和private,由于是单身模式,所以类必须只能有一个实例,所以其构造函数应该设置为private,防止类的使用者构造类的多个实例。
又由于staticConfigure*_instance是一个静态成员变量,必须初始化,所以(2)空处应填写static Configure∷Configure*_instance。
对于本题(3)空处应构造类的一个实例new Configure()。
对于本题(4)空处返回instance,在主函数中应用此类时,只能通过Instance来实例化一个Configure对象。

考点:字句,代码