亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C ++ Singleton設計模式

C ++ Singleton設計模式

慕妹3146593 2019-05-23 10:24:02
C ++ Singleton設計模式最近我碰到了C ++的Singleton設計模式的實現/實現??雌饋硐襁@樣(我從現實生活中采用了它):// a lot of methods are omitted hereclass Singleton{    public:        static Singleton* getInstance( );        ~Singleton( );    private:        Singleton( );        static Singleton* instance;};從這個聲明我可以推斷出實例字段是在堆上啟動的。這意味著存在內存分配。對我來說完全不清楚的是,什么時候內存將被解除分配?還是有漏洞和內存泄漏?好像在實施中存在問題。我的主要問題是,如何以正確的方式實施它?
查看完整描述

3 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

作為一個單身人士,你通常不希望它被破壞。

當程序終止時,它將被拆除并解除分配,這是單例的正常,期望的行為。如果你想能夠明確地清理它,那么向類中添加一個靜態方法是非常容易的,它允許你將它恢復到干凈狀態,并在下次使用它時重新分配它,但這超出了范圍。 “經典”單身人士。


查看完整回答
反對 回復 2019-05-23
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

你可以避免內存分配。存在許多變體,在多線程環境的情況下都存在問題。

我更喜歡這種實現(實際上,我沒有正確地說我更喜歡,因為我盡可能地避免單身人士):

class Singleton{private:
   Singleton();public:
   static Singleton& instance()
   {
      static Singleton INSTANCE;
      return INSTANCE;
   }};

它沒有動態內存分配。


查看完整回答
反對 回復 2019-05-23
  • 3 回答
  • 0 關注
  • 560 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號