c/c++共有
1. 静态局部变量
:
用于函数体的内部修饰变量,这种变量的生存期长于该函数。
2. 静态全局变量:
定义在函数体外,用于修饰全局变量,表示该变量只在本文件可见。
3. 静态函数:
准确的说,静态函数跟静态全局变量的作用类似。表明该函数只在本文件中调用。
c++独有:
4. 静态成员变量:
这种数据成员的生存期大于class的对象。静态成员变量是每个class共享一份,普通数据成员是每个class都有一份。
5. 静态成员函数:
用于修饰class的成员函数
静态成员函数特点
1. 静态成员之间可以相互访问,包括静态成员函数访问静态成员变量和访问静态成员函数。
2. 非静态成员函数可以任意的访问静态成员函数和静态成员变量。
3. 静态成员函数不能访问非静态成员函数和非静态成员变量。
4. 调用静态成员函数,
可以用成员访问操作符(.)和(->)为一个类的对象或指向类对象的指针调用静态成员函数;
也可以使用类名::函数名调用(因为他本身属于类,用类名调用很正常)
前三点其实是一点:静态成员函数不能访问非静态(包括成员函数和成员变量),但是非静态可以访问静态。
总结
- 静态成员函数能访问静态(函数、变量),静态成员函数不能访问非静态。
- 非静态可以访问静态。