destroyer.h

来自「The article describes a smart binding of」· C头文件 代码 · 共 50 行

H
50
字号
#ifndef	__Destroyer_H
#define	__Destroyer_H

template <typename SINGLETON>
class Destroyer
{
public:
//	Constructor
    Destroyer	(SINGLETON* = null);

//	Destructor
    ~Destroyer	();

    void SetObject	(SINGLETON* object);

private:
//	Prevent users from making copies of a 
//	Destroyer to avoid double deletion:
	Destroyer		(const Destroyer<SINGLETON>& object);
	void operator=	(const Destroyer<SINGLETON>& object);

protected:
	SINGLETON* singleton_;
};

//////////////////////////////////////////////////////////////////////////
//	Destroyer
//////////////////////////////////////////////////////////////////////////
template <typename SINGLETON>
Destroyer<SINGLETON>::Destroyer (SINGLETON* singleton)
{
	singleton_ = singleton;
}

template <typename SINGLETON>
Destroyer<SINGLETON>::~Destroyer()
{
	if (singleton_)
		delete singleton_
	;
}

template <typename SINGLETON>
void Destroyer<SINGLETON>::SetObject (SINGLETON* object)
{
	singleton_ = object;
}

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?