學習日記之原型模式和Effective C++

原型模式(Prototype):用原型實例制定創建對象的種類,並且聽過拷貝這些原型創建新的對象。

淺複製:如果字段是值類型的,則對該字段執行逐位複製,如果字段是引用類型,則複製引用但不復制引用的對象;因此,原始對象及其副本引用同一對象。

深複製:把引用變量的對象指向複製過的新對象,而不是原有的被引用的對象。


Effective C++:


1:在資源管理類中提供對原始資源的訪問。

(1),APIs 往往要求訪問原始資源(raw resources),所以每一個 RAII class 應該提供一個“取得其所管理之資源"的辦法。

(2),對原始資源的訪問可能精油顯示轉換或隱式轉換。一般而言顯示轉換比較安全,但隱式轉換對客戶比較方便。

2:成對使用 new 和 delete 時要採用相同形式。

(1),如果你在 new 表達式中使用 [ ],必須在相應的 delete 表達式中也是用 [ ]。如果你在 new 表達式中不適用 [ ],一定不要在相應的 delete 表達式中使用 [ ]。

3:以獨立語句將 newed 對象置入智能指針

(1),以獨立語句將 newed 對象存儲於智能指針內。如果不這樣做,一旦異常被拋出,有可能導致難以擦覺的資源泄露。

4:讓接口容易被正確使用,不易被誤用。

(1),好的接口很容易被正確使用,不容易被誤用。你應該在你的所有接口中努力達到這些性質。

(2),“促進正確使用”的辦法包括接口的一致性,以及與內置類型的兼容。

(3),“阻止誤用”的辦法包括建立新類型、限制類型上的操作,束縛對象值,以及消除客戶的資源管理責任。

(4),tr1:shared_ptr 支定製型刪除器(custom deleter)。這可防範 DLL 問題,可被用來自動解除互斥鎖(mutexes)等等。


發佈了49 篇原創文章 · 獲贊 49 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章