我用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/