C++为什么摒弃auto_ptr
生活随笔
收集整理的這篇文章主要介紹了
C++为什么摒弃auto_ptr
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先來看下面的賦值語句:
auto_ptr< string> ps (new string ("I reigned lonely as a cloud.")); auto_ptr<string> vocation; vocaticn = ps;上述賦值語句將完成什么工作呢?如果ps和vocation是常規指針,則兩個指針將指向同一個string對象。這是不能接受的,因為程序將試圖刪除同一個對象兩次——一次是ps過期時,另一次是vocation過期時。要避免這種問題,方法有多種: - 定義賦值運算符,使之執行深復制。這樣兩個指針將指向不同的對象,其中的一個對象是另一個對象的副本,缺點是浪費空間,所以智能指針都未采用此方案。 - 建立所
總結
以上是生活随笔為你收集整理的C++为什么摒弃auto_ptr的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 烟是魔,酒是佛,不烟不酒难成佛下一句?
- 下一篇: C++如何选择智能指针