📄 std_pattern.h
字号:
#ifndef _GP_STDPATTERN_H
#define _GP_STDPATTERN_H
namespace GP
{
//----------------------------------------------------------------------------------------------
//Singleton<DataType> 单件类,只会产生一个对象
//SINGLETON(newClassName, orgClassName) 单件宏,从一个类(orgClassName)派生出一个单件类(newClassName),保持基类的功能
//----------------------------------------------------------------------------------------------
template <typename DataType>
class Singleton
{
static Singleton<DataType> s;
DataType * data;
Singleton(DataType * x) : data(x){}
Singleton(const Singleton<DataType> &);
Singleton<DataType> & operator = (Singleton<DataType> &);
public:
static Singleton<DataType> & instance(){return s}
DataType getData(){return * data}
void setData(DataType & theData){*data = theData}
};
#define SINGLETON(newClassName, orgClassName) \
class newClassName : public orgClassName \
{ \
newClassName(const newClassName &); \
newClassName & operator = (const newClassName &); \
protected: \
newClassName(){}; \
public: \
static newClassName & instance() \
{ \
static newClassName theInstance; \
return theInstance; \
} \
}; \
}
template <typename DataType>
GP::Singleton<DataType> GP::Singleton<DataType>::s(NULL);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -