首页 > 代码库 > 《Effective C++》 读书笔记之四 设计与申明
《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吗?
2016-11-04 23:23:37
本文出自 “做最好的自己” 博客,请务必保留此出处http://qiaopeng688.blog.51cto.com/3572484/1869659
《Effective C++》 读书笔记之四 设计与申明