C++语言程序设计

下面举一个例子说明静态成员函数的调用方法:

| 例10-22

class Directory
{
public:
...
// 静态公有的函数
static void setpath(char const *newpath);
private:
// 静态字符串
static char path [];
};
//静态数据成员的初始化
char Directory::path [199] = "/usr/local";
// 静态函数
void Directory::setpath(char const *newpath)
{
strncpy(path, newpath, 199);
}
// 使用实例
void main()
{
// 通过类名调用setpath()成员函数
Directory::setpath("/etc");
//通过象调用setpath()成员函数
Directory dir;
dir.setpath("/etc");
}

在上面的例子中, setpath()始一个公有静态的成员函数，C++也允许私有静态的成员函数，它只能被该类的其它成员函数调用，不能在类外被调用。
需要注意的是：静态的成员函数仅能访问静态的变量和静态的成员函数，不能访问非静态的数据成员和非静态的成员函数。