可以将成员函数声明为静态的(函数声明必须包含关键字static,但如果函数定义是独立的,则其中不能包含关键字static),这样做有两个重要的后果。
首先,不能通过对象调用静态成员函数;实际上,静态成员函数甚至不能使用this指针。如果静态成员函数是在共有部分声明的,则可以使用类名和作用域解析运算符来调整它。例如,可以给String类添加一个名为HowMany()的静态成员函数,方法是在类声明中添加如下原型定义:
static int HowMany(){return num_strings;}
调用它的方式如下:
int count=String::HowMany();
其次,由于静态成员函数不与特定的对象相关联,因此只能使用静态成员函数。例如,静态方法HowMany()可以访问静态成员num_string,但不能访问str和len。
同样,也可以使用静态成员函数设置类级标记,以控制某些类接口的行为。例如,类级标记可以控制显示类内容的方法所使用的格式。