本文主要是介绍单件基类实现与使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
单件基类实现
template<typename T>
class PublicSingleton
{
protected:PublicSingleton() {}public:static T& getInstance() noexcept(std::is_nothrow_constructible<T>::value){static T instance;return instance;}virtual ~PublicSingleton() noexcept {}PublicSingleton(const PublicSingleton&) = delete;PublicSingleton& operator=(const PublicSingleton&) = delete;
};
使用
// 继承单件基类
class TestClass final : public PublicSingleton<TestClass >
{// 保证通过单件基类的接口可访问当前类的方法friend class PublicSingleton<TestClass>;public:// 禁用拷贝构造函数和赋值构造函数TestClass(const TestClass&) = delete;TestClass& operator=(const TestClass&) = delete;void Print() {// todo}protected:TestClass() = default;
}
这篇关于单件基类实现与使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!