c++ - 其他源文件 C++ 无法访问全局对象

标签 c++ scope global-variables

我有一个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"

关于c++ - 其他源文件 C++ 无法访问全局对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3591772/

相关文章:

javascript - 控制变量范围

c++ - 全局变量没有在主线程中被破坏?

c++ - GLFW 中的内存泄漏

c++ - 使用 std::rand() 在 C++ 中进行硬币翻转实验,结果不正确

c++ - 既然 C++ 知道类型,它能推断出点和箭头吗?

c# - 子范围 & CS0136

C++ Google 风格 : Automatic correction

c - 是否有可能在 main 之后声明的变量具有文件范围?

python - 在Python中的函数中声明全局变量

javascript - 如何检测新全局变量的创建?