单例模式 (Singleton)
作者:互联网
1.基础
懒汉模式与饿汉模式
点击查看代码
#include<iostream>
using namespace std;
class Singleton{
private:
Singleton() {};
public:
void print() {
cout << "i am singleton " << endl;
}
static Singleton* GetInstance() {
// 懒汉模式
if (nullptr == _onlyInstance) {
_onlyInstance = new Singleton();
}
return _onlyInstance;
}
static void Destroy() {
if (!_onlyInstance) {
delete _onlyInstance;
}
}
private:
static Singleton* _onlyInstance ;
};
// 懒汉模式
// Singleton* Singleton::_onlyInstance = nullptr;
// 饱汉模式
Singleton* Singleton::_onlyInstance = new Singleton();// 在类Singleton 作用域调用私有构造函数
// 需要 delete
int main() {
Singleton::GetInstance()->print();
// static Singleton* s = new Singleton();
Singleton::Destroy();
return 0;
}
标签:Singleton,单例,模式,private,饿汉,print,cout 来源: https://www.cnblogs.com/data-man/p/16391142.html