单例模式的步骤

1.将构造函数设为私有,避免外部实例化类

2.定义一个私有的静态的指针变量来存放唯一的实例的指针 例:static SingleMode * instance;

3.定义一个公共的静态函数用来获取唯一实例

static SingleMode * getinstance()

{

if(instance == nullpter)

instance = new SingleMode();

return instance;//返回单例实例的指针

}

4.在需要使用单例实例的地方,通过调用公共的静态方法获取单例实例

总结:单例模式的关键在于,通过私有化构造函数,限制了直接创建对象的方式,通过公共静态函数 getInstance() 方法控制实例的创建和访问。这样,无论多少次调用 getInstance() 方法,都将返回同一个实例。

class Singleton {

   private:

      static Singleton* instance; // 静态成员变量,保存单例实例的指针

      Singleton() {} // 将构造函数设为私有,禁止外部创建对象

   public:

      static Singleton* getInstance() { if (instance == nullptr) { // 如果实例不存在,则创建一个新实例

     instance = new Singleton(); } return instance; }

     void showMessage()

     { std::cout << "Hello, I am a singleton object!" << std::endl; } };

     Singleton* Singleton::instance = nullptr; // 初始化静态成员变量

int main()

{ Singleton* singleton1 = Singleton::getInstance();

Singleton* singleton2 = Singleton::getInstance();

singleton1->showMessage(); // 输出 "Hello, I am a singleton object!"

singleton2->showMessage(); // 输出 "Hello, I am a singleton object!"

// 删除对象

delete singleton1;

delete singleton2;

return 0; }

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值