我想在我的C++項目自動記憶處置。自動C++內存/對象實例管理?聰明的指針?
我不介意有一些額外的約定,以獲得該內存自動處理 - 具體而言,我不介意對創建新的對象實例一些特殊的編碼(當然,沒有什麼更多因爲它擊敗了目的)。
在計算器許多有益的討論一些讀數之後,我發現「智能指針」被稱爲最(與第三方C++垃圾收集器的一些參考一起)。
隨着裝備只有一些「教科書」 C++知識,我相信C++的GC的複雜性使他們不值得使用,在我的情況。
在另一方面,我有一個.NET/Java的背景下,想利用在C++太這方面的經驗。我習慣於創建對象實例,並將它們傳遞給其他類/功能(我相信這是一些C的麪包和奶油的東西++太)。
那麼,智能指針/ shared_ptr /提高我在找什麼?
(注意,記憶獲取我的意思是做一個MyClass* var = new MyClass()
,不malloc()
。)
一些具體背景:
其實我正是我試圖做的是寫一些庫功能,這可以用於C++項目和iPhone項目(請注意,這些是純邏輯業務類,因此不應存在可移植性問題)。雖然我相信這不是一個需要高性能的區域(iPhone的非遊戲應用程序),但我對資源使用情況有一些擔憂。
在這種情況下使用智能指針有什麼問題嗎?有沒有更好的選擇?
不就是如何shared_ptr的作品?你確定這樣做有很多性能優勢嗎? – kossmoboleat 2012-03-25 14:33:18