无法访问静态方法 (C++)

unable to access static methods (C++)

代码如下:

#include <iostream>
using namespace std;

class Zaix
{
private:
    static int mor;

public:
    static int beri;
    static void setmor(int lip)
    {
        Zaix::mor=lip;
    }
    static int getmor(void)
    {
        return mor;
    }
};

int Zaix::beri=3;

int main()
{
    cout<<Zaix::beri<<endl;
    Zaix::beri++;
    cout<<Zaix::beri<<endl;
    Zaix::setmor(6);
    return 0;
}

现在,main() 函数 Zaix::setmor(6); 的第 4 行以某种方式使代码 Zaix::mor=lip; 的第 11 行无效。注释掉这一行后,整个编译就OK了,有了它,编译器给出了这个错误:

undefined reference to Zaix::mor" Any idea why that is?

同样在class外定义变量。

int Zaix::mor;

作业:

int Zaix::mor = 4;

在 C++ 中,我们需要在其外部定义 class 的所有静态成员变量,否则会出现链接错误。你只需要像下面那样做:-

int Zaix::mor;// Just add this line below int Zaix::beri = 3;