這是一個C++單件模式板類的一種實現,這個類的實現有別於傳統的用繼承或者宏的方式來實現。
這裡的singleton_holder實際上是類的包裝器。
template <typename T>
class singleton_holder
{
public:
typedef T obj_type;
static T& instance()
{
static T obj;
return obj;
}
private:
singleton_holder();
singleton_holder(const singleton_holder& s);
singleton_holder& operator=(const singleton_holder& s);
~singleton_holder();
};
class application_impl
{
public:
void run()
{
std::cout<<“this is a testb”<<std::endl;
}
}
typedef singleton_holder<application_impl> application;
void main()
{
application::obj_type& app = application::instance();
app.run();