《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