c++读书笔记——类的定义
(一个字一个字敲键盘的!!!)
1、类定义的语法
类定义以关键字class开始,定义的语法如下:
class类名{
访问权限控制符:
//类成员的声明
};起来的部分是类定义体(body),其中主要包括访问权限说明符和类成员的声明,常用的访问权限说明符有public 、private和proteced,它们限定了对成员的访问权限。
2、访问控制权限
c++语言支持的类访问控制权限有public、protected、private共3个级别,这3个成员访问说明符用于控制对类成员的访问。
public权限是最高权限,具有该权限的成员可以在类作用域之外被访问。
private权限则是最低访问权限,具有该权限的成员只能在类作用域中被访问到。
protected权限大致介于public与private之间。
!!结构与类的唯一差别在于两者的默认访问权限不同:结构成员的默认访问权限是public,类的默认访问权限是private。
3、数据成员和成员函数
类能够把事物的属性及其行为封装在一起成为一个整体,其主要属性抽象为关键数据,且表示为类的数据成员。其典型行为抽象为关键操作,且表示为类的成员函数。
由于类的数据成员一般是类的关键数据,不允许随意访问并修改,因此需要把它们的访问权限设为private,而类的成员函数则是要提供一组服务或者接口,一般要把它们的访问权限设置为public。
4、作用域运算符
成员函数可以定义在类定义体内,也可以定义在类定义体外。当成员函数比较简单、实现代码较少时,可以定义在类定义体内,而复杂、代码较多的成员函数一般定义在类定义体外。在类定义体外定义成员函数时,需要指明其所属的空间(即类属关系),否则该函数会被认为是全局函数(与类毫无关系)而产生访问错误。说明成员函数的类属关系需要用到作用域运算符“::”。
5、成员函数的性质
成员函数是类的成员,在定义时需要显式地说明其类属关系,在调用时,一般由对象和圆点运算符调用。作为函数,成员函数也有普通函数的性质。
(1)连接性:定义在类定义体内的成员函数一般会被作为内联函数处理,定义在类定义体外的成员函数则具有外部连接性。
(2)重载:与普通函数一样,成员函数也可以被重载。
(3)默认参数值:与普通函数一样,成员函数也可以具有默认参数值。