类的静态成员函数
静态成员函数:使用static修饰的成员函数,只能被定义一次,而且要被同类的所有对象所共享,它是类的一种行为,与对象无关,它有如下特点:
1)静态成员函数不可以直接访问类中非静态数据成员以及非静态成员函数,只能通过对象名(由参数传入)来访问,即在类的静态成员函数(类的静态方法)内部,不能直接访问this指针和对象的数据成员,在类的静态成员函数(类的静态方法)内部,只能访问类的静态数据成员!
2)静态成员函数在类外定义时,无需加static修饰,否则出错;
3)在类外,可以通过对象名以及类名来调用类的静态成员函数。
4)对象和类可以直接访问静态成员函数,静态成员之间可以相互访问,包括静态成员函数访问静态数据成员和访问静态成员函数;
5)非静态成员函数可以任意地访问静态成员函数和静态数据成员;静态成员函数不能访问非静态成员函数和非静态数据成员;
6)当同一类的所有对象使用一个量时,对于这个共用的量,可以用静态数据成员变量,这个变量对于同一类的所有的对象都取相同的值。静态成员变量只能被静态成员函数调用。静态成员函数也是由同一类中的所有对象共用。只能调用静态成员变量和静态成员函数。