手撕instance
时间: 2024-01-04 07:03:57 浏览: 79
面试手撕代码整理
单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供了一个全局访问点来访问该实例。其关键代码是将构造函数设为私有,以防止类外部直接创建实例,而是通过类内部提供的静态方法来获取实例。
在给定的代码示例中,是一个简单的单例模式实现。该类使用一个静态成员变量 _instance 来保存唯一的实例,并通过静态方法 GetInstance() 来获取该实例。在第一次调用 GetInstance() 方法时,会创建一个新的实例并将其赋值给 _instance 变量,后续的调用将直接返回该实例。
对于手撕instance的问题,我理解您的意思是如何手动实现一个单例模式的实例。下面是一个常见的手动实现单例模式的示例:
```
class Singleton {
public:
static Singleton& GetInstance() {
static Singleton instance;
return instance;
}
// 禁止拷贝构造函数与赋值运算符
Singleton(const Singleton&) = delete;
Singleton& operator=(const Singleton&) = delete;
private:
Singleton() {} // 私有构造函数
// 其他私有成员变量和方法
};
```
以上代码中,GetInstance() 方法返回一个静态的 Singleton 实例。通过将构造函数设为私有,我们防止了类的外部直接实例化。此外,我们还禁止了拷贝构造函数和赋值运算符,以确保只有一个实例存在。
阅读全文