singleton 单件模式的实现

 

Singleton模式其实是对全局静态变量的一个取代策略,上面提到的Singleton模式的两个作用在C++中是通过如下的机制实现的:1)仅有一个实例,提供一个类的静态成员变量,大家知道类的静态成员变量对于一个类的所有对象而言是惟一的 2)提供一个访问它的全局访问点,也就是提供对应的访问这个静态成员变量的静态成员函数,对类的所有对象而言也是惟一的。在C++中,可以直接使用类域进行访问而不必初始化一个类的对象。

 

 

 

#include "stdafx.h" #include <iostream> using namespace std; class singleton{ public: static singleton * get_instance_ptr(); static singleton get_instance(); void print(); private: singleton(){} ~singleton(){} static singleton * instance_ptr; }; singleton * singleton::instance_ptr=NULL; //类得静态成员变量要在类体外进行定义,定义时不能再加static描述符 singleton* singleton::get_instance_ptr(){//类外实现 if(!instance_ptr) instance_ptr=new singleton(); return instance_ptr; } singleton singleton::get_instance(){ singleton *instance_ptr=get_instance_ptr(); return * instance_ptr; } void singleton::print(){//测试程序 cout<<"nihao"<<endl; } int main(){ singleton::get_instance_ptr()->print(); return 0; }  

你可能感兴趣的:(singleton 单件模式的实现)