shared_ptr原理 shared_ptr的用法?
shared_ptr的用法?智能指針本身不能動(dòng)態(tài)分配內(nèi)存,否則它將沒(méi)有存在的意義。智能指針有一個(gè)數(shù)據(jù)成員,即指針。至于類型,則取決于類模板的實(shí)現(xiàn)方式。此指針用于動(dòng)態(tài)分配內(nèi)存。堆棧中只能分配內(nèi)存本身。利
shared_ptr的用法?
智能指針本身不能動(dòng)態(tài)分配內(nèi)存,否則它將沒(méi)有存在的意義。
智能指針有一個(gè)數(shù)據(jù)成員,即指針。至于類型,則取決于類模板的實(shí)現(xiàn)方式。此指針用于動(dòng)態(tài)分配內(nèi)存。堆棧中只能分配內(nèi)存本身。利用堆棧自動(dòng)回收數(shù)據(jù)的特性,當(dāng)系統(tǒng)回收數(shù)據(jù)時(shí),調(diào)用智能指針類的析構(gòu)函數(shù),釋放智能指針中指針數(shù)據(jù)成員指向的內(nèi)存。例如,STD::shared uuptr
當(dāng)a*a被共享uuptr被管理時(shí),如何在func uptr中獲得它自己的共享成為一個(gè)問(wèn)題。如果它寫(xiě)為:一個(gè)新的共享將與一個(gè)ptr:local sp ua一起生成。這可能會(huì)在生命周期結(jié)束時(shí)直接釋放一個(gè)。在這里,您需要使用enablesharedfromuu重寫(xiě):sharedfromuu這將從弱的uptr生成自己的共享uptr。