代码实现
class Base {
private:
int data; //数据成员
Base() {} //设置为私密函数
public:
void setdata(int i) {
data = i;
}
int getdata() {
return this->data;
}
static Base& get() {
static Base temp;
return temp;
}
Base(Base const&) = delete;
Base(Base&&) = delete;
Base& operator = (Base const&) = delete;
Base& operator = (Base&&) = delete;
//删除复制构造函数、移动构造函数、拷贝赋值函数
};
int main() {
Base& test = Base::get();
}
应用场景
当应用程序只需要使用一个组件的情况,例如运行时系统,仅仅生成一个对象即可
核心处理方法
设置复制构造函数、移动构造函数、拷贝赋值函数不可调用。
唯一能够获取对象的方法时调用类的成员函数返回静态变量。
注意点
单例模式的对象如果依赖了其他全局变量、静态变量,在析构函数中使用他们是不安全的,因为销毁函数的不确定性。