C++ primer 5th 第7章 《类》的开头这样描述到:
类的基本思想是数据抽象(data abstraction)和封装(encapsulation)。
数据抽象是一种依赖与接口与实现分离的编程技术。类的接口包括用户所能执行的操作,类的实现则包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数。
封装实现了类的接口和实现的分离。封装后的类隐藏了它的实现细节,也就是说,类的用户只能使用接口而无法访问实现部分。
类要想实现数据抽象和封装,需要首先定义一个抽象数据类型(abstract data type)。在抽象数据类型中,由类的设计者负责考虑类的实现过程;使用该类的程序员则只需要抽象地思考类型做了什么,而无须了解类型的工作细节。
c++ primer 5th 第15章《面向对象程序设计》开头这样描述:
面向对象程序设计(object-oriented programming oop)的核心思想是数据抽象、继承和动态绑定。
通过数据抽象:我们可以将类的接口与实现分离;
使用继承,可以定义相似的类型并对其相似关系建模;
使用动态绑定,可以在一定程度上忽略相似类型的区别,而以统一的方式使用它们的对象。