类成员含有函数指针,初始化时候把对应单例句柄赋值;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #ifndef _AUTO_RELEASE_H_ #define _AUTO_RELEASE_H_
template<typename Type> class CAutoRelease { public: typedef void (Type::*PtrFun)(void); public: CAutoRelease(Type* pClass,PtrFun ptrFun) :m_pClass(pClass) ,m_ptrFun(ptrFun) { }
~CAutoRelease() { (m_pClass->*m_ptrFun)(); }
private: Type* m_pClass; PtrFun m_ptrFun;
CAutoRelease(); CAutoRelease(const CAutoRelease&); CAutoRelease& operator= (const CAutoRelease&); };
#endif
|