日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

《C++面向对象高效编程(第2版)》——3.17 编写内存安全类

發布時間:2025/6/15 c/c++ 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《C++面向对象高效编程(第2版)》——3.17 编写内存安全类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本節書摘來自異步社區出版社《C++面向對象高效編程(第2版)》一書中的第3章,第3.17節,作者: 【美】Kayshav Dattatri,更多章節內容可以訪問云棲社區“異步社區”公眾號查看。

3.17 編寫內存安全類

C++面向對象高效編程(第2版)
良好實現的類應該負責管理正確分配內存,無論創建(無論以何種方式創建)和使用了多少對象,都不會引發任何內存(資源)泄漏。設計和實現這樣的類并不容易,要理解內存安全類的指導原則,必須先理解無用單元回收(garbage collection)、懸掛引用(dangling reference)和初始化問題。第4章將涵蓋這些內容。現在,先來了解一下內存安全類。

3.17.1 改善性能

通過以上對值、指針和引用的討論,你可能會擔心性能問題。如果需要改善類(或一組類)的性能,以下列出的一些指導原則會有所幫助。必須反復強調一點,在編寫類的第1個版本的代碼時,首要的目標是正確地實現類,不要把注意力集中在性能上。等其他部分都完成妥當后,實際性能測試的結果會指導我們如何改善性能。

記住:

(1)避免制作對象的副本。復制對象的開銷很大(在內存和CPU時間方面)。

  避免創建新對象,設法復用現有對象。創建(和銷毀)對象開銷很大。

  在適當的時候使用const引用形參。

  使用const成員函數。

  盡可能地使用初始化語義(而非賦值)。

  優先使用指針而不是引用作為數據成員。指針允許惰性求值(lazy evaluation),而引用不允許。在第4章和第二部分的第11章中將做詳細介紹。

  避免在默認構造函數中分配存儲區。要將分配延遲到訪問成員時,通過指針數據成員(pointer data member)可輕松完成(見第11章)。

  用指針數據成員而不是引用和值成員。

  盡可能地使用引用計數(在其他章節深入討論)。

  通過重新安排表達式和復用對象減少臨時對象。

(2)在編寫代碼的最初階段中避免使用技巧。

  堅持安全第一,確保不會出現內存泄漏。

  在軟件開發的早期階段,不用擔心優化的問題。基于性能評定,再關注這個問題。

  在現實世界中,通常認為任何軟件都是以速度作為最終評定的標準。許多時候,客戶并不關心我們是使用OO技術還是其他什么技術。請不要誤認為我是個因循守舊、不切實際的理論派擁護者。實際上,任何軟件在快速運行之前,都必須保證該軟件足夠穩定和可靠。我們可以通過對實現的改善和性能工具提供的幫助,來提高軟件的性能。在尚未完成類的實現時,無需過分擔心性能問題。

本文僅用于學習和交流目的,不代表異步社區觀點。非商業轉載請注明作譯者、出處,并保留本文的原始鏈接。

總結

以上是生活随笔為你收集整理的《C++面向对象高效编程(第2版)》——3.17 编写内存安全类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。