C++ static 静态变量&静态成员函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ static 静态变量&静态成员函数相关的知识,希望对你有一定的参考价值。

 

 静态成员不可在类体内进行赋值,因为它是被所有该类的对象所共享的。你在一个对象里给它赋值,其他对象里的该成员也会发生变化。为了避免混乱,所以不可在类体内进行赋值。
   静态成员的值对所有的对象是一样的。静态成员可以被初始化,但只能在类体外进行初始化。
一般形式:
    数据类型类名::静态数据成员名=初值
    注意:不能用参数初始化表对静态成员初始化。一般系统缺省初始为0。

关于静态成员函数,可以总结为以下几点:
出现在类体外的函数定义不能指定关键字static;
静态成员之间可以相互访问,包括静态成员函数访问静态数据成员和访问静态成员函数;
非静态成员函数可以任意地访问静态成员函数和静态数据成员;
静态成员函数不能访问非静态成员函数和非静态数据成员;
由于没有this指针的额外开销,因此静态成员函数与类的全局函数相比速度上会有少许的增长;
调用静态成员函数,可以用成员访问操作符(.)和(->)为一个类的对象或指向类对象的指针调用静态成员函数,
当同一类的所有对象使用一个量时,对于这个共用的量,可以用静态数据成员变量,这个变量对于同一类的所有的对象都取相同的值。静态成员变量只能被静态成员函数调用。静态成员函数也是由同一类中的所有对象共用。只能调用静态成员变量和静态成员函数。

以上是关于C++ static 静态变量&静态成员函数的主要内容,如果未能解决你的问题,请参考以下文章

C++学习笔记.关键字static&静态成员变量

C++学习笔记.关键字static&静态成员变量

C++ 静态成员函数

C++ 静态成员函数

C++ 静态成员函数

C++ 静态成员变量成员函数