类(class)是面向对象程序设计最基本的概念,是C++最强有力的特征,是进行封装和数据隐蔽的工具,它把数据与数据的操作紧密地结合起来。
一.类的定义
在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同的数据结构和相同操作的一类对象的描述。
类是一种数据类型,它是一种用户定义的抽象的数据类型。
在C++中把类的数据成为数据成员,类的操作使用函数来实现的。类与对象的关系就是抽象与具体的关系,类是多个对象进行综合抽象的结果,一个对象是类的一个实例。
二.类类型声明的一般形式
class 类名 {
[private:]
私有数据成员和成员函数
public:
公有数据成员和成员函数
};
除了private和public之外,类中的成员还可以用另一个关键字protected来说明。被protected说明的数据成员和成员函数成为保护成员。保护成员可以由本类的成员函数或者本类的派生类的成员函数访问,而类外得任何访问都是非法的,即它是半隐蔽的。
类的数据成员可以是任何数据类型,但不能用自动(auto)、寄存器(register)或 外部(extern)进行声明。
在面向对象程序设计中,一般将变量(数据)隐蔽起来,外部不能直接访问。把成员函数作为对外界的接口,通过成员函数访问数据。
三.类的访问属性
类成员的访问属性有三种:公有属性(public)、私有属性(private)、保护属性(protected)。私有成员只能被类的成员访问,不能被在类的外部通过类的对象进行访问。
一般来说,公有成员是类的对外接口,而私有成员是类的内部数据和内部实现,不希望被外界访问。将类的成员划分成不同的访问级别与两个好处:一是信息隐蔽,即实现封装,将类的内部数据和内部实现和外部接口分开,这样使该类的外部程序不需要了解类的详细实现;二是数据保护,即将类的重要信息保护起来,以免其他程序不恰当地修改。