Skip to Content
C++程序设计:原理与实践(基础篇)(原书第2版)
book

C++程序设计:原理与实践(基础篇)(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
Pearson
Content preview from C++程序设计:原理与实践(基础篇)(原书第2版)

9.7 类接口

我们已经讨论过,类的公有接口和实现部分应该分离。只要为那些“旧式简单数据”类型保留着struct功能,不同意接口和实现分离原则的专业人员就会很少。但是,我们如何来设计一个好的接口呢?好的公有接口和乱糟糟的接口之间有什么区别呢?回答这个问题必须借助实例,但我们仍能列出一些一般原则,它们在C++中都有支持:

·保持接口的完整性。

·保持接口的最小化。

·提供构造函数。

·支持(或者禁止)拷贝(参见19.2.4节)。

·使用类型来提供完善的参数检查。

·识别不可修改的成员函数(参见9.7.4节)。

·在析构函数中释放所有资源(参见12.5节)。

也请参考5.5节(如何检测及报告运行时错误)。

前两条原则可以归结为“保持接口尽可能小,但不要更小了”。我们希望接口尽量小,是因为小的接口易于学习和记忆,而实现者也不会为不必要的和很少使用的功能浪费大量时间。小的接口还意味着有错误发生时,我们只需检查很少的函数来定位错误。平均来看,公有成员函数越多,查找bug就越困难——调试带有公有数据的类是非常复杂的,不要让我们陷入其中。当然,前提还是要保证完整性,否则接口就没有用处了。如果一个接口无法完成我们真正需要做的全部工作,我们是不会使用它的。

下面我们讨论其他一些话题,这些话题更为具体,直接对应C++语言功能。

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉

Publisher Resources

ISBN: 9787111562252