《C++面向对象高效编程(第2版)》——3.10 设计期间的重点——类的接口

简介:

本节书摘来自异步社区出版社《C++面向对象高效编程(第2版)》一书中的第3章,第3.10节,作者: 【美】Kayshav Dattatri,更多章节内容可以访问云栖社区“异步社区”公众号查看。

3.10 设计期间的重点——类的接口

C++面向对象高效编程(第2版)
在第2章中讨论了接口和实现的概念,现在来进一步学习它们。当客户(任何使用类创建对象或通过继承使用类创建另一个类的人)查看类时,最关心的是类中声明的内容。更具体地说,如果客户只准备创建类的对象(大多数客户都会这样做),他会注意public区域;如果客户试图通过类的继承创建(设计)一个新类,他会注意public和protected区域,这种情况下,无需过多关注private区域。

通过观察类的公有成员函数,客户可获知能对类对象进行的绝大多数操作。这些成员函数只是客户通过对象进行操作的工具。例如,回顾第2章中的影碟播放机,用户(客户)通过查看影碟机面板上的按钮,即可获知能对影碟机进行哪些操作。这些按钮类似于影碟播放机抽象的成员函数,它们应该能让客户明白播放机可以做些什么。但同时我们也不要提供过多的按钮(或控件),那会让用户很困惑。再者,每个按钮应该清楚地表达各自的用途。为了让客户对播放机有统一的印象,一个按钮应该有且仅有一个用途。但是,有时仅根据面板上的按钮名可能难以理解(和使用)某些特殊的按钮,这时就要查阅用户手册。用户手册中会详细完整地描述每个按钮和控件的功能。同样,设计良好的类也需要一个文档,用于描述每个成员函数的用法。这些都是设计良好接口的关键。与此类似,我们与人初次见面,会对他/她有第一印象(友好、敌对、肤浅等),接下来的交谈将直接受第一印象的影响。由此可见,设计良好的类应该对它的客户友好。下一节,我们将初步介绍一些设计良好接口的关键要素。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
存储 编译器 Linux
13 0
|
1天前
|
编译器 C++
标准库中的string类(上)——“C++”
标准库中的string类(上)——“C++”
|
1天前
|
编译器 C++
自从学了C++之后,小雅兰就有对象了!!!(类与对象)(中)——“C++”
自从学了C++之后,小雅兰就有对象了!!!(类与对象)(中)——“C++”
|
1天前
|
存储 编译器 C++
自从学了C++之后,小雅兰就有对象了!!!(类与对象)(上)——“C++”
自从学了C++之后,小雅兰就有对象了!!!(类与对象)(上)——“C++”
|
1天前
|
缓存 编译器 API
NumPy与其他语言(如C/C++)的接口实践
【4月更文挑战第17天】本文介绍了NumPy与C/C++的接口实践,包括Python与C/C++交互基础、NumPy的C API和Cython的使用。通过案例展示了如何将C++函数与NumPy数组结合,强调了内存管理、类型匹配、错误处理和性能优化的最佳实践。掌握这些技能对于跨语言交互和集成至关重要。
|
2天前
|
C++
【C++成长记】C++入门 | 类和对象(下) |Static成员、 友元
【C++成长记】C++入门 | 类和对象(下) |Static成员、 友元
|
2天前
|
存储 编译器 C++
【C++成长记】C++入门 | 类和对象(中) |拷贝构造函数、赋值运算符重载、const成员函数、 取地址及const取地址操作符重载
【C++成长记】C++入门 | 类和对象(中) |拷贝构造函数、赋值运算符重载、const成员函数、 取地址及const取地址操作符重载
|
11天前
|
存储 算法 C语言
【C++初阶】8. STL初阶 + String类
【C++初阶】8. STL初阶 + String类
47 1
|
11天前
|
C语言 C++
【C++初阶】9. string类的模拟实现
【C++初阶】9. string类的模拟实现
36 1
|
16天前
|
存储 人工智能 BI
【C++面向对象】C++银行卡管理系统(源码+论文)【独一无二】
【C++面向对象】C++银行卡管理系统(源码+论文)【独一无二】