template<typename T>
class Singleton
{
public:
static T* getInstance()
{
static T instance;
return &instance;
}
protected:
virtual ~Singleton()
{
std::cout<<"~Singleton()\n";
}
Singleton(){}
private:
Singleton(const Singleton &)=delete;
Singleton& operator=(const Singleton &)=delete;
Singleton(Singleton &&)=delete;
Singleton& operator=(Singleton &&)=delete;
};
class designPattern : public Singleton<designPattern>
{
friend class Singleton<designPattern>;
public:
//...
private:
designPattern(){}
~designPattern()
{
std::cout<<"~designPattern()\n";
}
};
int main()
{
designPattern* s=designPattern::getInstance();
}
单例模式(模板封装,实际应用)
最新推荐文章于 2024-10-05 15:34:23 发布