1.静态成员函数中不能调用非静态成员。
2.非静态成员函数中可以调用静态成员。因为静态成员属于类本身,在类的对象产生之前就已经存在了,所以在非静态成员函数中是可以调用静态成员的。
3.静态成员函数只能访问静态类的原因:静态方法属于整个类,在对象创建之前就已经分配空间,类的非静态成员要在对象创建后才有内存,所有静态方法只能访问静态成员,不能访问非静态成员;
4.静态成员可以被任一对象修改,修改后的值可以被所有对象共享。
5.静态成员变量使用前必须先初始化(如int MyClass::m_nNumber = 0;),否则会在linker时出错。
#include <iostream> using namespace std; class Test{ public: Test(){} void func(){} int getNums(){ return nums; } private: static int nums; }; int Test::nums = 0; int main() { Test *t = new Test(); cout<<t->getNums()<<endl; return 0; }