我有以下代码:
//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
在这种情况下应该公开
答案 0 :(得分:3)
该行
const DDG::OpMap::value_type opMap[DDG::OP_COUNT] = {
应该是
const DDG::OpMap::value_type MyClass::opMap[DDG::OP_COUNT] = {