《Effective C++》 读书笔记之四 设计与申明

简介:

《Effective C++》 读书笔记之四 设计与申明

条款18:让接口容易被正确使用,不易被误用。

重点:

  1. 好的接口很容易被正确使用,不容易被误用。你应该在你的所有接口中努力达成这些性质。

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

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

  4. tr1::shared_ptr支持定制型删除器。这可防范DLL问题,可被用来自动解除互斥锁等等。

2016-11-04 23:17:09

条款19:设计class犹如设计type。

设计class之前明确下面的问题:

  1. 新type的对象应该如何被创建和销毁?

  2. 对象的初始化和对象的赋值该有什么样的差别?

  3. 新type的对象如果被passed by value,意味着什么?copy构造函数用来定义一个type的pass-by-value该如何实现。

  4. 什么是新的type的合法值?

  5. 你的新type需要配合某个继承图系吗?与virtual有关

  6. 你的新type需要什么样的转换?

  7. 什么样的操作符和函数对此新的type而言是合理的?

  8. 什么样的标准函数应该驳回?那些正是你必须声明为private的。

  9. 谁该取用新type的成员?

  10. 什么是新type的“未声明接口”?

  11. 你的新type有多么一般化?如果真的很一般化,也就是定义的不是一个type,而是一整个types家族,那么应该定义一个新的template。

  12. 你真的需要一个新的type吗?



本文转自313119992 51CTO博客,原文链接:http://blog.51cto.com/qiaopeng688/1869659
相关文章
|
3月前
|
设计模式 安全 编译器
Effective C++55 笔记
Effective C++55 笔记
21 0
|
6月前
|
存储 安全 编译器
[笔记]读书笔记 C++设计新思维《一》基于策略的类设计(下)
[笔记]读书笔记 C++设计新思维《一》基于策略的类设计(下)
|
2月前
|
算法 安全 C++
C++ Effective Modern Pointer (智能指针模块)
C++ Effective Modern Pointer (智能指针模块)
|
6月前
|
存储 算法 Java
[笔记]读书笔记 C++设计新思维《二》技术(Techniques)(二)
[笔记]读书笔记 C++设计新思维《二》技术(Techniques)(二)
|
6月前
|
安全 编译器 C++
[笔记]读书笔记 C++设计新思维《二》技术(Techniques)(一)
[笔记]读书笔记 C++设计新思维《二》技术(Techniques)
|
6月前
|
安全 Java C++
[笔记]读书笔记 C++设计新思维《一》基于策略的类设计(上)
[笔记]读书笔记 C++设计新思维《一》基于策略的类设计
|
6月前
|
存储 编译器 C++
C++:构造/析构/赋值运算(Effective C++)
C++:构造/析构/赋值运算(Effective C++)
|
6月前
|
编译器 C++
C++:让自己习惯C++(Effective C++)
C++:让自己习惯C++(Effective C++)
|
6月前
|
存储 编译器 程序员
C++ Primer Plus 第6版 读书笔记(10) 第十章 类与对象
C++ Primer Plus 第6版 读书笔记(10) 第十章 类与对象
37 0
|
6月前
|
存储 关系型数据库 编译器
C++ Primer Plus 第6版 读书笔记(9)第 9章 函数——内存模型和名称空间
C++ Primer Plus 第6版 读书笔记(9)第 9章 函数——内存模型和名称空间
62 1

热门文章

最新文章