Я использую C ++ 11.Мне запрещено использовать внешние библиотеки, такие как boost и т. Д. Я должен использовать только STL.
У меня есть ряд событий, которые должны быть определены как строковые константы.Мне не разрешено использовать перечисления или целые числа или любой другой тип данных.Например:
"имя-события1"
"имя-события2"
"some_other_event_name3"
"a_different_event_name12"
Затем у меня есть несколько классов, которым нужно использовать эти строки, но я не знаю, существуют ли другие классы (они не имеют никакого отношения друг к другу).
class Panel{
void postEvent(){
SomeSingleton::postEvent("event_name");
}
}
Другой класс ::
class SomeClass{
SomeClass(){
SomeSingleton::listenForEvent("event_name");
}
void receiveEvent(){
//This function is triggered when "event_name" occurs.
//Do stuff
}
}
Все эти события являются константами и используются для идентификации вещей, которые происходят.
Вот что я пробовал:
Как хранить строкиконстанты, к которым будет обращаться несколько разных классов?
Некоторые из присутствующих предложили мне предоставить конкретные детали того, как решить конкретную проблему, поэтому я создал этот новый вопрос.
Как сохранить строки в общем файле, чтобы все другие классы, использующие эти строки, могли ссылаться на один и тот же файл?
- Я не хочутратить память или утечка памяти в течение жизни моего приложения (это яobile app)
- время компиляции не имеет для меня большого значения, так как проект не такой большой
- ожидается, что может быть 50 различных событий.
- ItКажется, было бы удобнее сохранить все строки в одном файле и редактировать только этот файл по мере изменения ситуации.
- Любой класс может прослушивать любое событие в любое время, и я не буду знатьдо компиляции