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 を public にすればOKです。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 に答える