单例模式基础实现
#include<iostream>
class Singleton {
public:
//删除复制构造函数,防止复制,那就不是单例了
//Singleton(const Singleton&) = delete;
static Singleton& get() {
return s_Instance;
}
void Function() {
}
private:
Singleton() {}
//成员数据在复制构造函数调用时会被复制到新对象中
float member = 0.0f;
static Singleton s_Instance;
};
//?
Singleton Singleton::s_Instance;
int main() {
//Singleton::get().Function();
//正常应该这样写
Singleton& instance = Singleton::get();
//但是如果忘记写&,则变成调用复制构造函数了,则又是多个实例了。所以:要删除复制构造函数,这样会强制要求使用&
//Singleton instance = Singleton::get();
}