BZ易风

导航

 

单例实现

复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;

class Singleton
{
public:
    static Singleton* Instance()    //只提供一个公有化的指针返回
    {
        return instance;
    }

private:
    Singleton()             //私有化默认构造参数
    {}
    Singleton(const Singleton& s)   //私有化拷贝构造
    {}

    static Singleton* instance;     //私有化静态变量
};

Singleton* Singleton::instance = new Singleton;  //初始化

void test601()
{
    Singleton* s1 = Singleton::Instance();
    Singleton* s2 = Singleton::Instance();
    if (s1 == s2)
    {
        cout << "s1和s2相同" << endl;
    }
}
复制代码

私有化拷贝构造,无法通过拷贝构造出新的指针

 

posted on   BZ易风  阅读(25)  评论(0编辑  收藏  举报
努力加载评论中...
 
点击右上角即可分享
微信分享提示