⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 如何保证在应用程序使用的类只有一个对象实例.txt

📁 MFC简明教程
💻 TXT
字号:
如何保证在应用程序使用的类只有一个对象实例?
(hangwire发表于2002-8-9 12:25:14)

为了保证在自己的应用程序中所使用的类只能创建一个对象实例,可以用下面介绍的一个简单方法:

class MyClass
{
public:
   static MyClass* GetInstance()
   {
      static BOOL bInit = FALSE;
      if (bInit == FALSE)
      {
         bInit = TRUE;
         m_pInstance = new MyClass();
      }

      return m_pInstance;
   }
private:
   MyClass() {}

   static MyClass *m_pInstance;
};

MyClass* MyClass::m_pInstance = NULL;

根据上面这段代码,要想在程序中只许创建一个MyClass类对象,调用静态成员函数GetInstance()即可。
例如:

MyClass MyObj(); // 编译出错 - 因为构造函数是 private

// 获得指向类对象指针的正确方法 
MyClass* pMyObj1 = MyClass::GetInstance(); 

// 下面的语句不会创建新的类对象,它所创建的对象指针pMyObj2与上面创建的pMyObj1指针是一样的,
// 也就是说pMyObj1和pMyObj2所指的对象是一样的

MyClass* pMyObj2 = MyClass::GetInstance(); 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -