私人与公共typedef

时间:2012-11-19 15:46:19

标签: c++ class typedef private public

我有以下代码:

//MyClass.h
class MyClass {
      typedef std::map<std::string, int> OpMap;
      static const OpMap::value_type opMap[OP_COUNT];

    public:
     //methods
};

//MyClass.cpp
const MyClass ::OpMap::value_type opMap[DDG::OP_COUNT] = {
    MyClass ::OpMap::value_type("hello", 42),
         MyClass ::OpMap::value_type("world", 88),
};

上述代码的编译失败。 只有当我将typdef公之于众时才行。 你能否解释为什么typedef在这种情况下应该公开

1 个答案:

答案 0 :(得分:3)

该行

const DDG::OpMap::value_type opMap[DDG::OP_COUNT] = {

应该是

const DDG::OpMap::value_type MyClass::opMap[DDG::OP_COUNT] = {