c++ 全局对象

Posted

技术标签:

【中文标题】c++ 全局对象【英文标题】:c++ global object 【发布时间】:2011-02-07 04:12:31 【问题描述】:

我想在 cpp 程序中创建一个全局对象,我该怎么做? 这是正确的吗? 在“global_obj.h”中

#include "class.h"
Class obj;

在“main.cpp”中

extern Class obj;

【问题讨论】:

你的一个答案是绝对正确的。 extern 声明属于头文件。非extern 定义恰好属于一个.cpp 文件。 【参考方案1】:

我们在一个头文件中将我们的全局变量声明为extern,在您的例子中是:global_obj.h,而在源文件中实际的全局变量是:global_obj.cpp。在单独的源文件中,我们#include "global_obj.h" 可以访问它们。

应该是这样的:

global_obj.cpp

Class obj;

global_obj.h

extern Class obj;

main.cpp

#include "global_obj.h"

【讨论】:

以上是关于c++ 全局对象的主要内容,如果未能解决你的问题,请参考以下文章

C++ 随机种子、全局对象和 SDL_Threads

C++ - 全局静态对象和局部静态对象的构造函数调用不同?

多线程设计,保护C++中的全局成员

重点关注:C++全局变量初始化

重点关注:C++全局变量初始化

使用 c++ 对象的全局实例扩展嵌入式 python 解释器