class QClass
{
protected:
QClass() {};
~QClass() {};
public:
static QClass* instance();
private:
static QClass * _instance_;
static bool _bDestoryed_;
protected:
static void destory();
}
QClass * QClass::_instance_ = NULL;
QClass * QClass::_bDestoryed_ = false;
QClass * QClass::instance()
{
if(!_instance_)
{
if(!_bDestoryed_)
{
_instance_ = new QClass();
atexit(&QClass::destory); //登记退出时调用函数
}
}
}
void QClass::destory()
{
if(_instance_)
{
delete _instance_;
_instance_ = NULL;
_bDestoryed_ = true;
}
}
需要使用该类时直接使用即可
QClass *class = QClass::instance();