鍍金池/ 問答/C  C++/ 為什么shared_ptr里的control block要維護(hù)weak refe

為什么shared_ptr里的control block要維護(hù)weak reference counter?

ref: StackOverflow的提問地址

回答中解釋了說弱引用計(jì)數(shù)器對(duì)control block的生命周期有影響,這我都明白,new和make_shared不同我也明白,但是我不明白control block為什么需要維護(hù)弱引用計(jì)數(shù)器呢?不維護(hù)不就可以不和control block生命周期甚至make_shared中的整個(gè)對(duì)象的生命周期綁定了呢?

回答
編輯回答
清夢(mèng)

強(qiáng)引用計(jì)數(shù)(uses)為0時(shí)會(huì)析構(gòu)對(duì)象,弱引用計(jì)數(shù)(weaks)為0時(shí)會(huì)刪除ref counter對(duì)象,所以創(chuàng)建shared_ptr都會(huì)有一個(gè)uses和一個(gè)weaks

2017年3月21日 05:52