一.静态数据成员的引入原因
为了使一个类的所有对象具有相同的属性,属性值不同。
静态成员的类属性:描述类的所有对象的共同特征的一个数据项,对于任何对象实例,它的属性值是相同的。
二.静态数据成员的声明
用关键字static声明
该类的所有对象维护该成员的同一个拷贝(即所有对象的这个属性只有一个值)。
必须在类外定义和初始化,用(::)来指明所属的类。
例:int Point::countP=0; //countP在类声明中是静态数据成员
在类的声明中仅仅对静态数据成员进行引用性说明,必须在文件作用域的某个地方使用类名限定进行定义性说明,这时也可初始化。
三.静态成员函数引入原因
静态成员函数主要为了调用方便,不需要生成对象就能调用。
比如 class X
{ public: void MethodA();
static void MethodB(); }
此时MethodB可以直接调用,X::MethodB();
MethodA必须先生成类对象才能调用,X x; x.MethodA();
四.静态成员函数的使用
类外代码可以使用类名和作用域符(::)来调用静态成员函数。
静态成员函数只能引用属于该类的静态数据成员或静态成员函数
注意:静态成员属于类,非静态成员属于对象。