天天看点

静态成员变量和静态成员函数用法

总结自各处大佬博客,仅供学习

静态成员变量:

  • 静态成员变量只能被初始化一次,且不该在头文件中初始化,初始化格式为: 

       <数据类型> <类名>::<静态成员变量名> = <值>

  • 引用静态成员变量时,格式如下:

       <类名>::<静态成员变量名>

  • 静态数据成员被类的所有对象所共享,包括该类派生类的对象。即派生类对象与基类对象共享基类的静态数据成员。
  • 静态数据成员可以成为成员函数的可选参数,而普通数据成员则不可以。
  • 静态数据成员的类型可以是所属类的类型,而普通数据成员则不可以。普通数据成员的只能声明为所属类类型的指针或引用。

静态成员函数:

  • C++ 普通成员函数都隐式包含了一个指向当前对象的this指针,而静态成员函数是属于类而非对象的,所以不含this指针
  • 静态成员函数不可以调用类的非静态成员
  • 静态成员函数的地址可用普通函数指针储存,而普通成员函数地址需要用 类成员函数指针来储存。