У вас есть 3 проблемы:
1) Член класса объявлен указателем
Комментируемая строка внутри addTag()
:
// map < string, string > tagsMap;
Это , а не указатель, поэтому он работает, если вы раскомментируете объявление локальной карты.
Тем не менее, это логически неверно, поскольку он не является членом вашего класса -он затеняет вашего tagsMap
члена класса.
Таким образом, вам необходимо объявить tagsMap
в вашем xyz
классе не -показатель.
map < string, string > *tagsMap;
// ^ remove asterisk '*'
2) Отсутствует точка с запятой после определения класса
Добавьте ;
точку с запятой, после определения класса
class xyz {
...
}
// ^^^ add semicolon here
3) Функция Const
Удалить const
в addTag()
, чтобы иметь возможность писать в tagsMap
участника класса
void xyz::addTag(string _tagName, string _tagValue) const { .. }
// ^^^^^ remove const
void addTag(string _tagName, string _tagValue) const;
// ^^^^^ remove const