类
类是数据和函数的封装体,类也是一种数据类型。在类中数据称为数据成员,函数称为成员函数。
类的定义一般形式:
class<类名>
{private:
<私有的数据和函数>
protected:
<保护的数据和函数>
public:
<公有的数据和函数>
};
数据成员同结构struct中的数据是一致的,成员函数是对类的私有数据成员操作的惟一途径。
类的成员函数声明的结构如下:
<类型> <成员函数名> (<参数表>);//最后的分号不可以省略
成员函数定义的结构如下:
<类型> <类名> :: <成员函数名> (<参数表>)
{
<成员函数体>
}
类成员函数的存取权限有三级:公有的、保护的和私有的。类的成员函数和普通函数一样可以进行重载。
函数重载分为:函数参数类型重载(参数不同)和函数参数个数重载(参数个数不同)。
对象
对象是C++的基本单位,类描述了一类问题的共同属性和行为,对象是类的实例,对象是由类作为类型定义的变量。
对象同变量一样,有从建立到消亡的生存期,也有也变量一致的作用域,所以,在语法上对象就是有类定义的变量。
定义一个对象和定义一个变量类似,结构如下:
<类名> <对象名>;//分号不能省略
用类定义对象以后,对象就具有类的所有性质,也就是说,类的数据成员就是对象的数据成员,类的成员函数就是对象的成员函数。
访问对象的公有成员的语法结构如下:
<对象名>.<公有成员函数名>或
<对象名>.<公有成员函数名>(<参数表>)
构造函数
构造函数也是类的一个成员函数,应用构造函数定义对象,其语法结构为:
<类名><对象名>(<构造函数的参数表>)
构造函数的特点如下:
◎构造函数是特殊的成员函数,该函数的名字与类名相同,该函数不能指定返回类型;
◎构造函数可以重载,即可以定义多个参数个数不同或参数类型不同的构造函数;
◎构造函数在定义对象时被直接调用,程序中不能直接调用构造函数。
析构函数
析构函数是对象的生命期结束时要执行的一段程序,用来完成对象被删除前的一些清理工作。
析构函数的特点如下:
◎析构函数是特殊的成员函数,该函数的名字为波浪号“~”后面跟着类名,该函数不能指定返回类型,也不能有参数;
◎一个类只能定义一个析构函数;
◎析构函数在对象生命结束时被直接调用,程序中一般不能调用析构函数。
面向对象程序设计的3个主要性质:封装、继承和多态。
封装
封装是一种信息隐藏技术。
定义:◎一个清楚的边界。
◎一个外部的接口。
◎隐藏受保护的属性数据和内部操作。
继承
继承是指新建的类从已有的类那里得到已有的特征。已有的类称为基类或父类,继承基类而产生的新建类称为派生类或子类。由父类产生子类的过程称为类的派生。
多态
多态也就是类中具有相似功能的不同函数使用同一个函数名。函数名重载是实现多态的一种手段。