如何c++实现一个模板的单例类
时间: 2024-10-27 16:10:02 浏览: 17
在C++中,为了实现模板的单例模式,你可以创建一个模板类,并确保只有一个实例存在。这通常通过静态成员变量和私有构造函数来完成。下面是一个简单的示例:
```cpp
template <typename T>
class Singleton {
private:
// 私有化构造函数,防止从外部直接创建新的实例
Singleton() = delete;
~Singleton() = default;
// 使用关键字static保证全局只有一个实例
static T& getInstance() {
static T instance; // 静态局部变量保证初始化仅执行一次
return instance;
}
public:
// 获取唯一实例的方法
static T* getInstancePtr() {
return &getInstance();
}
// 公共的获取和操作实例的方法
static void operate(T& t) {
// 这里假设T有一个名为operate的操作
t.operate();
}
};
// 使用模板类
class MyClass : public Singleton<MyClass> {
public:
// 类的具体实现...
};
int main() {
auto* myInstance = MyClass::getInstancePtr(); // 获取单例实例
MyClass::operate(*myInstance); // 操作单例
return 0;
}
```
阅读全文