1.静态数据成员
每个类只有一个静态数据成员副本,它由该类的所有对象共同维护和使用。
注意:
(1)声明时,使用static关键字。
(2)必须初始化,且一定要在类外进行。初始化形式:
<类型标识符><类名>::<静态数据成员名>=<值>
(3)静态数据成员属于类,不属于任何一个对象,在类外可通过类名引用。
<类名>::<静态数据成员名>
(4)当静态数据成员被声明为私有成员时,只能在类内直接引用它,在类外无法引用。
被声明为公有成员时,可以在类外通过类名或对象名引用。
2.静态成员函数
作用:为了能在不生成对象的情况下处理静态数据成员。
定义格式:
static 返回值类型 成员函数名(参数列表);
使用方法:
类名::静态成员函数名(参数表)【一般通过类名调用】
或 对象名.静态成员函数名(参数表)
说明:
(1)静态成员函数可以直接引用该类的静态数据和成员函数,而不能直接引用非静态数据成员;
(2)若要引用非静态数据成员,必须通过参数传递的方式得到对象名,然后通过对象名引用间接实现。
(3)非静态成员函数有this指针,而静态成员函数没有this指针。