静态数据成员与静态函数成员都是同一个类的所有对象共享的成员。
补充以下两个个知识点:
静态数据成员的初始化:静态数据成员的初始化必须在类定义外进行。
静态函数成员的作用:
静态函数成员与普通函数成员一样,在ELF 文件中都只会保留一份copy,它们的区别体现在:静态成员函数可以在不定义对象的情况下直接调用,而非静态成员函数不行。
class X
{
public:
void f1(){ cout << "f1" << endl; }
static void f2(){ cout << "f2" << endl; }
};
int main()
{
X::f1(); //报错
X::f2(); //正常运行
}