我用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时,将构造并返回单例。每隔一次将返回相同的对象。

这通常称为Meyers singleton

关于c++ - 单例示例如何工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34787288/

10-13 08:22