1

我有以下代码:

//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在这种情况下应该公开吗

4

1 回答 1

3

线

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

应该

const DDG::OpMap::value_type MyClass::opMap[DDG::OP_COUNT] = {
于 2012-11-19T15:49:34.213 回答