条款18:让接口容易被正确使用,不易被误用
接口的定义非常重要。提供给第三方的接口,你不可能知道用户会做什么,所以我们本身在写内部实现的时候,有可能假定,某些条件吻合,因为代码都是自己实现,所以可能假设代码符合那些约束条件。一旦接口提供出去,那这可就不好说了。没有人知道用户会填什么结果在里面,所以第一接口不能存在二义性,接口的行为需要保持一致。
这一条款中很重要的一条是消除用户的资源管理责任,这一条很重要,也就是说,谁分配的资源,谁负责销毁。这里推荐使用Boost的智能指针解决这一问题。