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

时间:2018-03-26 10:20:08

标签: c++ static undefined-reference

以下是代码:

#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行以某种方式使提交的代码的第11行无效Zaix::mor=lip;。注释掉这一行,整个事情编译好了,有了它,编译器就会出现这个错误:

  

未定义引用Zaix :: mor&#34;   知道为什么会这样吗?

2 个答案:

答案 0 :(得分:2)

在类外定义变量。

int Zaix::mor;

对于作业:

int Zaix::mor = 4;

答案 1 :(得分:0)

在C ++中我们需要定义一个类之外的所有静态成员变量,否则我们会得到一个链接错误。您只需要执行以下操作: -

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