天天看點

《Effective C++》 讀書筆記之四 設計與申明

《Effective C++》 讀書筆記之四 設計與申明

條款18:讓接口容易被正确使用,不易被誤用。

重點:

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

“促進正确使用”的辦法包括接口的一緻性,以及與内置類型的行為相容。

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

tr1::shared_ptr支援定制型删除器。這可防範DLL問題,可被用來自動解除互斥鎖等等。

2016-11-04 23:17:09

條款19:設計class猶如設計type。

設計class之前明确下面的問題:

新type的對象應該如何被建立和銷毀?

對象的初始化和對象的指派該有什麼樣的差别?

新type的對象如果被passed by value,意味着什麼?copy構造函數用來定義一個type的pass-by-value該如何實作。

什麼是新的type的合法值?

你的新type需要配合某個繼承圖系嗎?與virtual有關

你的新type需要什麼樣的轉換?

什麼樣的操作符和函數對此新的type而言是合理的?

什麼樣的标準函數應該駁回?那些正是你必須聲明為private的。

誰該取用新type的成員?

什麼是新type的“未聲明接口”?

你的新type有多麼一般化?如果真的很一般化,也就是定義的不是一個type,而是一整個types家族,那麼應該定義一個新的template。

你真的需要一個新的type嗎?

本文轉自313119992 51CTO部落格,原文連結:http://blog.51cto.com/qiaopeng688/1869659

繼續閱讀