您好,登錄后才能下訂單哦!
這篇文章主要講解了“C++11智能指針unique_ptr有什么作用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C++11智能指針unique_ptr有什么作用”吧!
軟件開發中有很多處理是對稱的,例如打開文件和關閉文件,申請內存和釋放內存,壓棧和出棧等。同樣的道理分享也存在對稱處理:獨占。與之相應的智能指針就是unique_prt。它同樣可以自動管理內存,只是這塊內存不和其他的unique_ptr分享。
初始化
如果觀察unique_ptr的構造函數聲明會發現,unique_ptr支持的構造函數和shared_ptr相差無幾,這里直接舉例。
初始化空unique_ptr
兩種寫法完全等效。
從指針創建
這是最普通的初始化方式。
從右值引用創建
以下是執行結果,可以看到內存從p3轉移到了p4。
賦值
由于unique_ptr對于內存的獨占特性,unique_ptr不支持直接的賦值操作,而只能支持右值引用的賦值,基本形式如下:
必須是先前的持有者明確放棄權利之后,才能賦值給新的持有者。實際的程序中,上面的代碼并沒有太大的意義,真正常見的應該是下面的代碼:
getvalue函數返回的是一個右值,所以也會執行右值引用賦值。
感謝各位的閱讀,以上就是“C++11智能指針unique_ptr有什么作用”的內容了,經過本文的學習后,相信大家對C++11智能指針unique_ptr有什么作用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。