次のコードがあります。
//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 を public にすればOKです。typedef
この場合、公開する必要がある理由を説明してください