单例方法

来源:互联网 发布:淘宝网流量分析 编辑:程序博客网 时间:2024/05/29 08:13
//单例方法只能有一个对象实例#include <iostream>using namespace std;class Lenovo{private:    Lenovo(){cout << "a Lenovo computer created" << endl;}    ~Lenovo(){cout << "a Lenovo computer destoryed" << endl;}    static Lenovo* m_sp;public:    static Lenovo* create();    void destory(){        delete m_sp;        m_sp = nullptr;    }};Lenovo* Lenovo::m_sp = nullptr;Lenovo* Lenovo::create(){        if(m_sp == nullptr){            m_sp = new Lenovo;        }        return m_sp;    }int main(){    Lenovo* l = Lenovo::create();    Lenovo* l1 = Lenovo::create();    cout << (l == l1 ? 1 : 0) << endl;    l->destory();    return 0;}
class Lenovo{private:    Lenovo(){ cout << "a Lenovo computer created" << endl; }    ~Lenovo(){ cout << "a Lenovo computer destoryed" << endl; }    Lenovo(const Lenovo& o);    Lenovo& operator=(const Lenovo& o);public:    void show(){ cout << "Leenovo" << endl; }    static Lenovo& create();    };Lenovo& Lenovo::create(){    static Lenovo l;    return l;}int main(){    Lenovo::create().show();    Lenovo::create().show();    return 0;}

这里写图片描述