#include <stddef.h>
template<typename T>
class Singleton
{
public:
static T &getInstance ()
{
if(NULL == instance)
{
instance = new T();
}
return *instance;
}
static void delInstance ()
{
if(NULL != instance)
{
delete instance;
instance = NULL;
}
}
protected:
Singleton ()
{
}
~Singleton ()
{
}
private:
Singleton (const Singleton &)
{
}
Singleton &operator = (const Singleton &)
{
}
static T *instance;
};
template<typename T>
T *Singleton<T>::instance = NULL;
/* init*/
class BaseClient{};
class TestClient :public BaseClient, Singleton<MyClass>{};
BaseClient *pClient = NULL;
switch (id)
{
case INDEX1:
pClient = &TestClient::getInstance();
break;
}
原文链接: https://www.cnblogs.com/BloodAndBone/archive/2011/02/15/1955232.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/21029
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!