一、琐碎概念
1、对象:客观世界中任何一个事物都可以看做一个对象。
2、封装:将对象的内部实现与外部行为分隔开
3、抽象:表示同一类事物的本质,将有关事物的共性归纳、集中的过程。
类是对象的抽象,对象是类的特例(具体表现形式)。
4、继承:利用一个已有的类建立一个新的类,这就可以重用已有软件中的一部分甚至大部分,大大节省了工作量。这就是“软件重用”。
5、多态:由继承而产生的相关的不同的类,其对象对同一消息会做出不同响应。
对象=算法+数据结构
程序=对象s+消息
二、类的声明
1、类的定义:C++中对象的类型称为类,类代表了某一批对象的共性和特征。对象是类类型的抽象,类是对象的模板。
2、类类型声明
class 类名{
private:私有的数据成员函数
public:公用的数据和成员函数
};
public-------------->经常被类外的函数调用
private------------->只能被类内成员函数调用,被称为工具函数
三、类和结构体的异同
struct声明的类,默认全部成员为public,除显示声明private外,不具有信息隐蔽特征。
class声明的类,将全部成员默认为private,具有信息隐蔽性。
用struct声明的结构体实际上就是类类型。
四、类的成员函数
1、属于一个类的成员,出现在一个类体中,可以被指定为private,public,protected. 例如:私有的成员函数只能被本类中的成员调用,不能被类外函数调用;成员函数可以访问本类中的任意成员。
2、inline成员函数:用inline声明的作用是在调用该函数时,将函数的代码段复制并插入至代入点。类外定义的成员函数规模很小并且调用频率高,才将此成员函数指定为内置函数。
3、成员函数的存储方式
不同对象的数值不同,代码相同,因此只需要存储对象的数据部分,代码放在公共存储区域。
成员函数不占用对象的存储空间。调用同一段代码段时,C++用this指针指向不同的对象。
四、类的封装性和信息隐蔽
类的公用接口与私有实现的分离形成了信息隐蔽。
公用接口:被声明为public的成员函数
当接口与实现(对数据的操作)分离时,只要类的接口没有改变,对私有实现的修改不会影响程序的其他部分。