C ++ внешнее размещение объектов - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть объект HANDLER типа Handler, который должен быть виден всем файлам программы.

Handler.cpp:

Handler::Handler() = default;
// ...

Мне нужно запустить его при запускеЗапустите файл serverserver.cpp:

//extern Handler HANDLER;
int main() {
    HANDLER.start();
}

и получите доступ к нему в других файлах, например UserServer.cpp:

// extern Handler HANDLER
UserServer::myMethod() {
    HANDLER.foo();
}

Я не уверен, как это сделать с точки зрения компиляции.

Где я должен объявить / определить HANDLER?

Где и как мне нужно использовать extern?

Ваша помощь приветствуется.

1 Ответ

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

В заголовочном файле handler.h вы должны использовать extern keywork для объявления после определения класса Handler.

extern Handler HANDLER;

Вы можете определить Handler в вашем исходном коде handler.cpp

Handler HANDLER;

Если вы хотите использовать объект HANDLER, вы просто включаете заголовочный файл в исходный файл.

...