类中的 static 的用法
1、类的静态成员变量,该属性不属于某个成员,是类的属性,是所有成员所共享的
2、静态成员变量必须要在类的外部进行初始化
3、静态成员(变量、函数)使用方式:
通过变量使用
通过类名使用
4、静态的成员函数 只能使用静态的成员变量
public:
int m_a;
int m_b;
static int m_sa;
};
int Test::m_sa = 10;
1、普通成员变量 = = => 结构体的成员
2、静态的成员变量 = = => 全局变量
3、类的普通成员函数 = = => 会为其添加一个指向当前对象的指针
4、类的静态成员函数 = = => 没有为其添加指针,原来的样子
= = => 没有指向当前对象的指针,所以不能使用对象内部的成员
= = => 可以使用静态成员变量,因为静态变量实现为全局变量,可见所以可用
全局函数,想使用类的成员,只能通过对象来使用
void show(Test &t){}
友元: 可以访问类的私有成员
友元函数:如果有一个函数是类 A 的友元函数,则该函数可以使用(通过对象) A 中的所有成员
友元声明方式:在类中写上 函数声明,在函数声明前 加 friend
使用注意:
1、友元的声明不受访问控制符限制, 可以放在类的任意位置
2、友元函数是 “友” 不是类的成员函数,是外部的函数, 没有 this 指针
3、友元破坏了类的封装性 ----> 慎用(尽量不要用)
友元类:如果类A是类B的友元类,则类A中所有函数都是类B的友元函数