gpt4 book ai didi

C++ 变量头范围

转载 作者:行者123 更新时间:2023-11-30 02:33:26 26 4
gpt4 key购买 nike

我在 header 文件中定义了一些模板内联函数(我们称它为head.h)。目前,这些函数使用一些在同一 header 中用 extern 声明并在一个 .cpp 中某处定义的全局变量。

一切正常,但我会将全局变量范围限制在定义它们的 header 内。

换句话说,包含我的head.h 的所有其他.h.cpp 将无法看到此类全局变量。

有什么方法可以达到这个结果吗?

最佳答案

包含头文件只是将头文件的内容复制到包含的cpp/h文件中。这意味着,您无法真正区分您是在头文件中还是在包含头文件的 cpp/h 文件中执行操作。

因此,不能排除在头文件中定义的变量。如果它们在 cpp 文件中并且您想禁止 extern,则可以使用匿名命名空间:

namespace
{
int variable;
}

显然,最佳做法是根本不使用全局变量。它被认为是糟糕的风格有几个原因,比如可读性、难以确定依赖性、测试困难、扩展软件的机会很小等等。因此,如果重构不是此处的一个选项,您可能会为您的下一个项目重新考虑这种架构。

关于C++ 变量头范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35461574/

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