类的静态成员函数是和类相联系的,而不是和类的具体对象相联系的,即使一个类没有任何具体对象,也能调用类的静态成员函数.
类的静态成员函数的主要特征是没有this指针,这就导致了它
(1)不能"直接"存取类的非静态成员变量。不能直接存取是因为不能直接对对象的非静态成员变量寻址。也就是说是可以间接进行对象的非静态成员变量的存取的。
(2)不能被声明为virtual
一般的非成员静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。
关于static 变量方面的声明举个例子:
void function(void)
{
static int a=10;
a++;
}
当第一次调用function()时 a被初始化为10
当第二次调用function()时 a为刚才运算后保留的值11
被声明为static的变量某种意义上说有点象全局变量的特性
类中的static成员(不管是成员函数还是成员变量)都是属于这个类的,而不是属于某个对象(类的某个实例)。此类的某个对象改变了static成员,也将影响到其它此类的各个对象。