singleton单例模式:一个类在运行的过程中始终只能存在一个实例。
.hpp文件内容如下:
#ifndef __singleh
#define __singleh
class Singleton
{
public :
static Singleton * Instance();//创建/获取唯一实例的方法
void Destroy();
int a;
private:
static Singleton * _Instance;//唯一实例的指针
Singleton(){};//构造函数
Singleton(const Singleton&);//拷贝构造函数,防止产生新实例
Singleton & operator = (const & Singleton); //赋值,防止产生实例
};
Singleton * Singleton::_Instance = NULL;
Singleton * Singleton::Instance()
{
(_Instance == NULL)? _Instance = new Singleton():_Instance = 0;
return _Instance;
}
void Singleton :: Destroy()
{
delete _Instance;
_Instance = NULL;
}
#endif
.cpp中调用如下:
void __fastcall TForm1::Button10Click(TObject *Sender)
{
Singleton * ton = Singleton::Instance();
if(ton)
{
ShowMessage("创建成功!");
ton->a = 100;
}
Singleton * ton1 = Singleton::Instance();//产生的是同一个类
ShowMessage(ton1->a);
ton->Destroy();
}