阅读以下说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 说明 通常情况下,用户可以对应用系统进行配置,并将配置信息保存在配置文件中。应用系统在启动时首先将配置文件加载到内存中,这些内存配置信息应该有且仅有一份。下面的代码应用了单身模式

admin2005-03-20  73

问题 阅读以下说明和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()

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

相关试题推荐
最新回复(0)