我有一个ErrorLog类,该类用于编写和修改日志文件。我想在主要事件之前和之后写它以进行调试,并且我只想在整个应用程序中使用ErrorLog类的一个实例。我尝试通过将

ErrorLog exe_log;
放入头文件中来声明一个ErrorLog对象为全局对象,以便它可以访问其他文件,但是我一直收到错误消息,说它已经定义。有没有正确的方法来防御全局对象?

最佳答案

您需要在头文件中声明和在源文件中定义。

foo.h:

extern ErrorLog exe_log;   // declaration (note the "extern")

foo.cpp:
ErrorLog exe_log;          // definition

bar.cpp:
#include "foo.h"

09-25 16:34