1 静态成员
1.1 什么是静态成员
被static修饰的成员变量、成员函数都称为静态成员
1.2 普通成员的特点
普通成员变量:每个类对象中都独有一份成员变量,相互之间没有任何关联
普通成员函数:都隐藏着一个this指针
1.3 静态成员的特点
静态成员变量:
① 存储在data或者bss内存段中,一个类的静态成员变量只有一份,被所有类对象共享
② 静态成员变量的生命周期不依赖于任何的对象,为整个程序的生命周期
③ 静态成员变量必须通过static声明在类内,在类外单独定义、初始化,在定义时不能加static
④ 因为静态成员变量不依赖于任何类对象,因此可以直接通过 类名::静态成员变量名 的方式来访问,不需要创建对象或依赖对象
1.4 静态成员函数
格式:
static 返回值 函数名(参数列表){} //声明与定义可以不分开
① 没有隐藏的this指针,所以在静态成员函数中无法直接访问普通成员变量、普通成员函数,但是可以直接访问静态成员变量和静态成员函数
② 虽然静态成员函数不能直接访问普通成员,但是静态成员函数的作用域依然算是类内的,因此只要让静态成员函数获得类对象的指针或引用,依然有权限间接访问private\protected的普通成员
static void func(Test* t)