静态成员是类的所有 对象共有的变量,在编译 阶段就必须分配空间。
需要注意:
(1)静态成员变量的定义和使用
class Test{ static int a; }; int Test::a = 1; void main() {}
然后 sizeof(Test) 是0,原因是 a 是静态的,空间已经分配。
(2)静态成员函数
class Test{ private: static int a; int b; public: static int func() { cout << a << endl; } } int Test::a = 1; int main() { Test::func(); return 0; }
需要注意:静态成员函数中只能使用静态成员变量,因为非静态成员变量无法识别是哪个对象的属性。