友元
功能: 突破封装
缺点: 会增加耦合度,破坏封装
友元分为友元函数和友元类
友元函数
1. 可以直接访问类的私有成员
2. 是定义在类外部的普通函数,不属于任何类
3. 可在类定义的任何地方声明,不受类访问限定符限制,声明时需要加friend关键字
4. 可访问类的私有和保护成员,但不是类的成员函数
5. 不能用const修饰
6. 一个函数可以是多个类的友元函数
7. 友元函数的调用与普通函数的调用和原理相同
友元类
1. 友元关系是单向的,不具有交换性
2. 友元关系不能传递
内部类
概念: 如果一个类定义在另一个类的内部,这个内部类就叫做内部类。
特性:
1. 可以定义在外部类的public、protected、private。
2. 可以直接访问外部类中的static、枚举成员,不需要外部类的对象/类名。
3. sizeof(外部类)=外部类,和内部类没关系。
static
static可用在:
1. 全局变量:限制在当前文件可见
2. 函数: 限制在当前文件可见
3. 局部变量: 延长局部变量的生命周期,让其生命周期和程序的生命周期相同。