#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;
}