Все еще относительно новый для C ++
У меня есть переменная заголовка с пространством имен с несколькими константами, которая выглядит примерно так
namespace blah {
const std::string x="foo";
}
У меня нет проблем с доступом к переменным таким способом - dosomething (blah :: x); и т.д. Теперь я хочу изменить переменную, чтобы она могла быть изменена. Если я просто вынимаю const, я получаю ошибку компоновщика "duplicate symbol blah :: x". Добавление экстерна здесь не помогает:
namespace blah {
extern std::string x;
}
Это говорит о том, что extern включен по умолчанию, и я получаю ту же ошибку повторяющегося символа. Какой правильный способ сделать это?
(РЕДАКТИРОВАТЬ в последнем случае, я пока не хочу устанавливать значение переменной. Я хочу получить его в другом месте и поделиться значением. Чтобы уточнить - я хочу избавиться от const, чтобы я мог изменить значение (Например, используя аргументы командной строки. Когда я избавляюсь от const, я получаю ошибки о повторяющихся символах.)