目录
4 链式编程思想
7友元函数
对象初始化列表
对类的属性进行初始化
:属性(初始值),……
一个类调用另一个类
静态成员,类的公共计数器
(1)类内声明,类外初始化。
(2)不属于某个对象,但该类的所有对象共享,由对象调用
例:假如构造函数调用。每执行一次构造函数, 计数器+1。(num变量公有)
(3)通过类访问
(4)通过类调用静态函数
(5)静态成员函数 不能访问 非静态成员变量
(因为不清楚要改的是类实例化的哪一个对象)
(6)静态成员函数会受作用域限制
链式编程思想
空指针访问成员函数
用类定义的空指针可以 调用 类内无调用属性的函数
常函数和常对象
this指针的本质是指针常量,指针不能改指向地址。
(1)常函数
在成员函数后面加const,修饰的是this指向,让指针指向的值也不可改。
演示:常函数中不能改this指向的值
去掉const后,可改值
定义变量前加上mutable,该变量可在常函数中修改。
(当然,普通的成员函数也能使用加了mutable的变量)
(2)常对象
不允许修改属性
常对象的普通成员变量收到约束↓
试着在2普通的成员变量前加上mutable↓
成功!
加了mutable的成员变量不受到const的影响(常函数,常常对象)
常对象只能调用常函数
证明↓
(1)证实常对象调用不了普通成员函数(因为普通成员函数能够改值)
(2)证实常对象可以调用常函数
友元函数
友元函数目的是为了让外部函数访问实例化对象的私有变量
在类内写上:
friend 函数头;
外部函数不能访问到实例化对象的私有变量
将函数变成类的友元函数可访问
添加第九行
(1) 成员函数和成员变量分开存储
(2) 常量指针是指向常量的指针,指针常量是一个指向固定地址的指针。