1.首先需要了解什么是单例类?
单例就是一个类的只能被实例化一次,只能拥有一个实例化的对象的类。
2.了解类的对象的实例化过程?
a.创造对象
b.new
以上两种方式都是通过调用构造函数来进行初始化的。
所以,只要禁止调用构造函数,就可以禁止外部初始化实例。即:将构造函数私有化。
3.提供一个公共的接口供外部使用,但是类的实例化在内部实现。
class A
{
public:
A * get_obj()
{
if(ptr == NULL)
{
p = new A();
}
return p;
}
private:
A()
{
cout<<"In A "<<endl;
}
A *ptr;
}
int main()
{
A *ptr = A::get_obj();
A *tmp = A::get_o