приватный против публичного

У меня есть следующий код:

//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

Решение

Линия

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

должно быть

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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector