模拟实现VC中的handle的c++方法,可以使用在类层次结构的设计中。
代码没有添加注解,很简单嘛。程序使用dev c++调试通过。
#include <iostream>
#include <cstdlib>
using namespace std;
typedef void * HANDLE;
class CTartgetCmd{
public:
CTartgetCmd();
virtual ~CTartgetCmd();
virtual void OnCmdMsg(unsigned int nCommand);
HANDLE GetHandle();
protected:
HANDLE m_hHandle;
};
CTartgetCmd::CTartgetCmd()
{
m_hHandle = this;
}
CTartgetCmd::~CTartgetCmd()
{
m_hHandle = NULL;
}
void CTartgetCmd::OnCmdMsg(unsigned int nCommand)
{
}
HANDLE CTartgetCmd::GetHandle()
{
return m_hHandle;
}
void SendMessage(HANDLE hHandle, unsigned int nCommand)
{
CTartgetCmd *pCmd = (CTartgetCmd *)(hHandle);
pCmd->OnCmdMsg(nCommand);