У меня есть класс в заголовке:Декларирование моего объекта как экстерн дает «не заявил в этой области» ошибка
class Communicator {
public:
std::map<std::string,obj::obj_version<obj::tkt_metadata>*> local_objects;
}
Когда я компилирую я могу создать Communicator позже в коде и использовать карту в обычном режиме , без проблем.
Однако, как только я кладу после объявления класса:
extern Communicator comm;
И добавить:
Communicator comm;
В файле реализации для заголовка, я получаю «ошибка: 'OBJ' был не объявлен в этой области »и т. д., где obj
- это пространство имен, которое содержит obj_version и tkt_metadata (и предшествует включению моего заголовка коммуникатора).
Что здесь происходит, и есть ли что-нибудь, что я могу сделать, чтобы его правильно скомпилировать? Благодаря!