单例模式是最简单的设计模式,关键点在于:
1.将构造方法(函数)设置为私有
2.定义一个静态变量,类型的当前类,值是类对象
3.定义一个静态方法,将第2步定义的静态变量返回出去,即类对象。
要将变量设置为静态的原因是:
静态方法要用到,静态方法只能调用静态变量;
要将函数设置为静态的原因是:
在类外使用类名 + 方法名(对象指针 :: 方法名())就可以调用方法,即不用new 也可以得到类对象。再加上构造函数是私有的,new是会报错的。
构造方法一定要加{},否则会报找不到.o文件
静态方法要在类外实现,否则会报错。
#include<iostream>
class SingleObject
{
//单例模式
private:
SingleObject(){};
static SingleObject* Object;
public:
static SingleObject* getObject();
void print()
{
cout<<"单例模式下调用"<<endl;
}
};
SingleObject * SingleObject::Object = 0;
SingleObject * SingleObject::getObject()
{
if(Object == 0)
{
Object = new SingleObject();
}
return Object;
};
void main(void)
{
SingleObject* o = SingleObject::getObject();//c++调用静态方法
o -> print();
}