Cpp:如何解决这个错误:“未定义引用”(关于枚举)

时间:2015-10-23 02:18:32

标签: c++ enums

这是示例代码,我得到错误“未定义引用到.Parent :: mMyClass”“

class Parent{ //A and B inherit Parent for mMyClass variable 

protected:
    enum MyClass{
      ClassA,
      ClassB,
    };

    static MyClass mMyClass;
};

class A : Parent {
public:
    void setClass(){
        mMyClass = Parent::ClassA; //Error Here
    }
};
class B : Parent {
public:
    void setClass(){
        mMyClass = Parent::ClassB; //Error Here
    }
};

int main()
{
    A a;
    B b;
    a.setClass();
    b.setClass();

    return 0;
}

我正在尝试共享变量“mMyClass”以用于A类和B类。 有什么解决方案可以更好地解决这个问题吗?感谢

1 个答案:

答案 0 :(得分:0)

必须在课外定义static类成员。添加行

Parent::MyClass Parent::mMyClass = Parent::ClassA;

课外。