C++中单件设计模式(Singleton pattern)的语法实现

时间:2022-08-12 18:45:13

当我们需要只有一个类的实例返回给调用程序时,就可以使用单件设计模式(Singletom pattern).这种类的声明如下:

class TheOnlyInstance

{

public:

        static TheOnlyInstance * GetTheOnlyInstance();

protected:

        TheOnlyInstance(){}

private:

        //

} ;

 

//只能通过公有静态方法来访问

TheOnlyInstance* TheOnlyInstance::GetTheOnlyInstance()

{

        static TheOnlyInstance objTheOnlyInstance;

        return &objTheOnlyInstance;

}

 

//错误的用法

int main()

{

        TheOnlyInstance noCanDo; //因为构造函是数保护成员,所以这种声明是错误的。

}

 

//说明

GetTheOnlyInstance方法仅在第一次被调用时,创建TheOnlyInstance类的一个实例。以这种方式构造的静态对象一直有效,直到程序终止,此时这种静态对象将自动释放。要检索指向这个类的唯一实例的指针,只需要调用静态方法GetTheOnlyInstance。

TheOnlyInstance * pTheOnlyInstance = TheOnlyInstance::GetTheOnlyInstance();