gpt4 book ai didi

c++ - 跨多个源文件使用全局(多次使用 extern)

转载 作者:太空宇宙 更新时间:2023-11-04 14:18:54 25 4
gpt4 key购买 nike

我有一个全局文件,我想在多个文件之间共享。让我们称之为:

库.cpp:

HookContext g_context;

然后,我还有另外两个文件想访问这个全局文件:

A.cpp:

extern HookContext g_context;

B.cpp;

extern HookContext g_context;

当我将所有这些文件链接在一起时,我的链接器会发出以下警告:

B.obj : error LNK2005: "class HookContext g_context"(?g_context@@3VHookContext@@A) already defined in A.obj

我是否错误地使用了 extern?我应该怎么做才能同时访问 A 和 B 中的上下文?

注意:在这种情况下,我不希望使用任何头文件来定义上下文。

谢谢

最佳答案

我会使用某种单例。使您能够稍后插入一些初始化或将其转换为其他内容。

库.cpp:

static HookContext g_context;
HookContext& getHookContext()
{
return g_context;
}

A.cpp:

extern HookContext& getHookContext();

关于c++ - 跨多个源文件使用全局(多次使用 extern),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9155855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com