Использование структуры в качестве значения в карте в C ++ - PullRequest
0 голосов
/ 13 февраля 2019

Я работаю над устаревшим кодом, есть класс A, для которого определен член enum, подобный этому

class A
{
private:
 enum E{ kRemove, kDoNotRemove};
 static map<String, MapValue> s_Map; //this map I am trying to add
}

Я пытаюсь добавить карту в этом классе, которая будет иметь структуру в качестве значениячто-то вроде этого

 struct MapValue{
      E e; //this enum is defined in private section in the class
      String T;
      String F;
  } ;

Что я не могу понять, где я должен определить эту структуру MapValue?

Мое понимание:

  • Если я добавлю его внутрьclass Всякий раз, когда я буду создавать объект, будет выделена структура var.Это бесполезно, так как я использую эту структуру только в качестве значения для карты.Кроме того, это не тот случай, когда мне нужна только одна копия этой структуры, поскольку я использую ее в качестве значения на карте.
  • Если я добавлю ее вне класса, это не будет хорошим дизайном, так какСтруктура только внутри класса, поэтому она не должна быть глобальной.Также структура имеет член enum, который определен как закрытый в классе, поэтому он недоступен за пределами класса.

Пожалуйста, предложите.

1 Ответ

0 голосов
/ 13 февраля 2019

Если вы объявляете тип внутри класса, это похоже на объявление enum, вы не выделяете новый экземпляр.Это произойдет только при создании объекта на карте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...