静态成员变量

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;
}
原文地址:https://www.cnblogs.com/luntai/p/5805590.html