1.类的定义
类是对具有相同属性和行为的一组对象的抽象与统一描述。是用户自定义的数据类型。类的定义包括行为和属性两个部分。属性以数据表示,行为通过函数实现。
类的成员可以是其他类的对象,但不能以类自身的对象作为本类的成员,而类自身的指针和引用可以作为类的成员。类定义必须以分号“;”结束。类与结构体的区别:没有明确指定类成员的访问权限时,C++结构体的成员是公有的,而类的成员是私有的。
2.访问控制
类的访问属性有:
Public 公有成员 类的外部接口
Protected 保护成员 仅允许本类成员函数及派生类成员函数访问
Private 私有成员 仅允许本类成员函数访问
3.成员函数
类的成员函数是实现类的行为属性的成员。一般将成员函数声明为函数原型,在类外具体实现成员函数
4.对象
对象是类的实例或实体。类与对象的关系,如同C++基本数据类型和该类型的变量之间的关系。
对象的定义格式如下:
类名 对象名1,对象名2,…,对象名n;
必须在定义了类之后,才可以定义类的对象
5.类定义和使用时应注意:
在类的定义中不能对数据成员进行初始化
类的任何成员都必须指定访问属性,一般将数据成员定义为私有成员或保护成员,将成员函数定义为公有成员
类中的数据成员可以是C++语法规定的任意数据类型
类的成员可以是其他类的对象,称为类的组合。但不能以类自身的对象作为本类的成员
类定义必须以分号“;”结束
class与struct的不同:
class中,成员缺省情况是private
struct中,成员缺省情况是public
6.构造函数
构造函数是用于创建对象的特殊成员函数。当创建对象时,系统自动调用构造函数
构造函数的作用是:
为对象分配空间;对数据成员赋初值;请求其他资源
没有用户定义的构造函数时,系统提供缺省版本的构造函数
构造函数名与类名相同:类名
构造函数可以重载。构造函数可以有任意类型的参数,但没有返回类型
7.析构函数
析构函数是用于取消对象的成员函数
当一个对象作用域结束时,系统自动调用析构函数
析构函数的作用是进行对象消亡时的清理工作
没有用户定义析构函数时,系统提供缺省版本的析构函数
析构函数名为: ~ 类名
析构函数没有参数,也没有返回类型。
对象生存期结束时,需要做清理工作,比如:释放成员(指针)所占有的存储空间
析构函数可以完成上述工作。
析构函数自动调用(隐式调用)
析构函数没有返回值,不能有参数,也不能重载
定义格式如下(类外实现):
类名::~类名()
{
函数语句
}
析构函数有以下一些特点:
① 析构函数与构造函数名字相同,但它前面必须加一个波浪号(~);
② 析构函数没有参数,也没有返回值,而且不能重载。因此在一个类中只能有一个析构函数;
③ 当撤消对象时,编译系统会自动地调用析构函数。
学习类的时候不能只是纸上谈兵,还要在具体的代码上实现出来,由于做的代码不多,所以对于类的理解还不深刻,所以需要加强。