您的位置:首页 > 编程语言 > C语言/C++

读书笔记《Effective c++》 条款18 让接口容易被正确使用,不易被误用

2018-01-09 21:23 344 查看
a.提供给客户的接口,最好能在编译器就检查出错误。例如给参数限定有限制的类型。

b.自定义类型的接口尽量与内置类型兼容,降低客户理解成本和出错风险。

c.接口如果要求客户记住某件事,那么这个接口就有着“不正确使用”的倾向,因为客户很可能会忘记那件事。

  例如,指向数组的只能指针的例子,下面的写法有两个要点:

  1.返回的是智能指针,不需要客户去delete。

  2.返回的智能指针带了特定的delete参数,保证会正常释放该指针。

class Test
{
// 有动态申请内存操作
};

std::shared_ptr<Test> test()
{
std::shared_ptr<Test> p{ new Test[10], std::default_delete<Test[]>() };
return p;
}

int main()
{
std::shared_ptr<Test> p{ test() };

return 0;
}


结论:

  a.好的接口很容易被正确使用,不容易被误用。

  b.“促进正确使用”的办法包括接口的一致性,以及与内置类型的行为兼容。

  c.“阻止误用”的把那包括建立新的类型、限制类型上的操作,束缚对象值,以及消除客户的资源管理责任。

  d.shared_prt支持定制删除器。这可防范跨DLL问题,可被用来自动解除互斥锁。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐