static(静态):分为静态成员变量和静态成员函数,作用域为整个类,所有成员函数可以共享。
静态成员变量:static int data;定义在类的私有(private)成员里面,但是静态成员的初始化要在类外面,即
int 类名 ::data = 6;
静态成员函数:static void main(){ }可以访问静态成员变量但是不能访问普通私有成员变量,因为它里面没有this指针
普通函数例如void print()可以调用静态函数,但是静态函数不能调动普通函数,也是由于this指针的缘故。
此处我们可以拿static和const进行比较
例如void fun()和void fun()const,他们之间构成了重载,后者能调动前者但是前者不能调动后者,因为前者的*this可以改变但是后者this和*this都不能改变。
注:假设上述函数都属于A类,则
void fun()等价于void fun(A * const this)
void fun()const等价于void fun(const A * const this)