第7章 类
C++语言中,我们使用类定义自己的数据类型。
类的基本思想:
- 数据抽象,英文是 data abstraction
- 封装,英文是encapsulation
关于数据抽象,英文是data abstraction。数据抽象依赖于接口和实现分离的编程(以及设计)技术
接口的英文是interface,实现的英文是implementation。
关于类的接口:
英文是interface。接口包括用户所能执行的操作。
关于类的实现:
英文是implementation。包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数。
封装实现了类的接口和实现的分离。
封装后的类隐藏了它的实现细节。类的用户只能使用接口而无法访问实现部分。
抽象数据类型,英文是abstract data type。类要想实现数据抽象和封装,需要首先定义一个抽象数据类型。
7.1 定义抽象数据类型
Sales_item类是一个抽象数据类型。
Sales_data类不是一个抽象数据类型。
7.1.1 设计Sales_data类
Sales_item类有一个名为isbn的成员函数,这个成员函数支持+,=,+=,<<,>>运算符.
成员函数,英文是member function。
Sales_data的接口应该包含以下操作:
- 一个isbn成员函数,用于返回对象的ISBN编号
- 一个combine成员函数,用于将一个Sales_data对象加到另一个对象上
- 一个名为add的函数,执行两个Sales_data对象的加法
- 一个read函数,将数据从istream读入到Sales_data对象中
- 一个print函数,将Sales_data对象的值输出到ostream