C++ 单件模式实现及对象释放

单件模式:

单件模式即在整个应用程序中只有一个类实例且这个实例所占资源在整个应用程序中是共享的。

单件模式的C++实现(构造函数、拷贝构造函数、赋值操作符均需重写):

#include 

class CSingleton
{
private:
    CSingleton()
    {
        std::cout<<"Singleton Constructed."<test();
    return 0;
}

单件模式的宏定义实现:

使用宏定义实现的好处在于:

1、代码更清晰;

2、当一个系统中需要用到多个单件模式的实例时,可重用代码;

#include 

#define PATTERN_SINGLETON_DECLARE(classname) \
private:                                    \
    static classname * _instance;           \
    class CGarbo                            \
    {                                       \
    public:                                 \
        ~CGarbo()                           \
        {                                   \
            if (classname::_instance)       \
            {                               \
                delete classname::_instance;\
                std::cout<<"~CGarbo():Singleton Instance Deleted."<
具体实现时,以下部分一般在cpp文件中实现,其他在.h中进行声明:

PATTERN_SINGLETON_IMPLEMENT(CSingleton);

int main()
{
    g_Singleton.test();
    return 0;
}


你可能感兴趣的:(C++ 单件模式实现及对象释放)