单例示例如何工作

singleton example how works

本文关键字:何工作 工作 例示 单例示      更新时间:2023-10-16

我在C++语言中找到了这个单例示例:

#include <iostream>
class singleton {
private:
    // ecco il costruttore privato in modo che l'utente non possa istanziare direttamante
    singleton() { };
public:
    static singleton& get_instance() 
    {
            // l'unica istanza della classe viene creata alla prima chiamata di get_instance()
            // e verrà distrutta solo all'uscita dal programma
        static singleton instance;
        return instance;
    }
    bool method() { return true; };
};
int main() {
    std::cout << singleton::get_instance().method() << std::endl;
    return 0;
}

但是,这怎么可能是一个单例类呢?

在哪里创建只有一个状态的控制?

不要错过静态属性?

如果我在主函数中编写另一个 get_instance() 调用会发生什么?

单实例控件是使用 get_instance 中的函数范围静态完成的。此类对象在程序流首先通过它们时构造一次,并在程序退出时销毁。因此,第一次调用get_instance时,将构造并返回单例。每隔一段时间将返回相同的对象

这通常被称为迈耶斯单例。

我想

向您指出对该模式的相当一般的描述,然后指向带有C++示例的更深入的论文。在我看来,这比试图解释(再次)更有效。

附言是的,你也需要一些静态定义。