C ++外部对象放置

时间:2019-02-10 20:09:18

标签: c++ compiler-errors compilation g++ external

我有一个Handler类型的对象HANDLER,它需要对程序的所有文件可见。

Handler.cpp:

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

我需要在启动程序launchserver.cpp中启动它:

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

并在其他文件中访问它,例如UserServer.cpp:

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

我不确定如何进行编译。

我应该在哪里声明/定义HANDLER?

我在哪里以及如何使用extern

我们非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

在头文件handler.h中,应在定义Handler类后使用extern键进行声明。

extern Handler HANDLER;

您可以在handler.cpp源代码中定义Handler

Handler HANDLER;

要使用HANDLER对象时,只需在源文件中包含头文件即可。