C++单例模式之一见钟情
什么是单例模式
单例模式就是保证一个类有且只有一个实例对象的一种机制并且提供一个访问他的全局方法
相信每个人都渴望纯洁的爱情,希望找到哪个唯一的他(她)。不管你是单身,还是已经成双成对,肯定都希望你的伴侣时唯一的!程序如人生,有些类我们也只希望它只有一个实例。
代码:
#include <iostream>
using namespace std;
//单例模式示例
class Mybeatifulgirl
{
public:
static Mybeatifulgirl * getgirlfriend(string name)
{
if (instance == NULL) {
instance = new Mybeatifulgirl(name);
}
else
{
cout << "我只爱" << instance->name_ << endl;
cout << "我对" << name << "置若罔闻" << endl;
}
return instance;
}
private:
//私有的构造函数,防止外人私自调用
Mybeatifulgirl(string name)
{
this->name_ = name;
cout << "我对" << name_ << "一见钟情" << endl;
}
//声明一个静态实例,静态函数只能使用静态的数据成员。整个类中静态成员只有一个实例,通常在实现源文件中被初始化。
static Mybeatifulgirl *instance;
string name_;
};
Mybeatifulgirl * Mybeatifulgirl::instance = NULL;
int main(void)
{
Mybeatifulgirl::getgirlfriend("mingming");
Mybeatifulgirl::getgirlfriend("chilk");
return 0;
}