글
Technical Article/펌 2004. 7. 26. 12:08템플릿+싱글턴
template < class T >
class CSessionManager
{
public:
static CSessionManager* GetInstance();
static void ReleaseInstance();
void CreateNewSession(int nSock);
void RemoveSession(T* pSession);
private:
static CSessionManager* m_pSelfInstance;
};
template < class T >
CSessionManager* CSessionManager :: m_pSelfInstance = 0;
template < class T > CSessionManager* CSessionManager::m_pSelfInstance = 0;
template < class T >
CSessionManager* CSessionManager::GetInstance()
{
if ( NULL == m_pSelfInstance )
{
m_pSelfInstance = new CSessionManager();
}
return m_pSelfInstance;
}
template < class T >
void CSessionManager::ReleaseInstance()
{
delete m_pSelfInstance;
m_pSelfInstance = NULL;
}
template < class T >
void CSessionManager :: CreateNewSession(int nSock)
{
T* pSession = new T(nSock);
}
template < class T >
void CSessionManager :: RemoveSession(T* pSession)
{
return;
}
class CSessionManager
{
public:
static CSessionManager* GetInstance();
static void ReleaseInstance();
void CreateNewSession(int nSock);
void RemoveSession(T* pSession);
private:
static CSessionManager* m_pSelfInstance;
};
template < class T >
CSessionManager* CSessionManager
template < class T > CSessionManager
template < class T >
CSessionManager
{
if ( NULL == m_pSelfInstance )
{
m_pSelfInstance = new CSessionManager
}
return m_pSelfInstance;
}
template < class T >
void CSessionManager
{
delete m_pSelfInstance;
m_pSelfInstance = NULL;
}
template < class T >
void CSessionManager
{
T* pSession = new T(nSock);
}
template < class T >
void CSessionManager
{
return;
}
![](https://lh3.googleusercontent.com/-hYZb_novCPQ/V5HuGPkGFUI/AAAAAAAAANk/f8zcKkeTBbA1A-W6yuqfk12fs8bd8FeOQCL0B/banner_468_60.png)
RECENT COMMENT