Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


程序:cpp:单例

单例

思想,不是语法


单例是什么

Singleton Pattern。保证一个类仅有一个实例,并提供一个访问它的全局访问点。

  • 单例类只能有一个实例。
  • 单例类必须自己创建自己的唯一实例。(自己创建自己)
  • 单例类必须给所有其他对象提供这一实例。
  • 意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
  • 主要解决:一个全局使用的类频繁地创建与销毁。
  • 何时使用:当您想控制实例数目,节省系统资源的时候。
  • 如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建。
  • 关键代码:构造函数是私有的。

我的理解

C++的静态函数可以在任何位置访问,但是静态函数不能存储数据,单例就是一个全是静态成员函数的类附带一块单独的全局存储区,访问这个类就等于访问这个类唯一的对象。

代码

From AI
class Singleton {
public:
    static Singleton& getInstance() {
        static Singleton instance;
        return instance;
    }
 
    void showMessage() {
        std::cout << "Hello, I am a singleton object!" << std::endl;
    }
 
private:
    Singleton() {}
    Singleton(const Singleton&) = delete;
    Singleton& operator=(const Singleton&) = delete;
};
/var/www/DokuWikiStick/dokuwiki/data/pages/程序/cpp/单例.txt · Last modified: 2023/04/23 12:06 by zh