c++ - 在C++程序中删除全局变量

标签 c++ data-structures

我有一个大型 C++ 程序,其中包含太多函数和全局变量。现在,我想删除那些全局变量,我只想使用局部变量而不是全局变量。任何人都可以建议我最好的方法来做到这一点。 谢谢!

它大约有 4000 行 C++ 程序。这些不同的类中有 10 个类和 60 个函数,30 个全局变量。全局变量在不同类的函数之间使用。

最佳答案

我通常首先将全局变量放在命名空间中

namespace global
{
  int var;
  ...
}

这将导致您在使用“var”的任何地方都出错,然后我将一个一个地替换对命名空间变体的引用。一旦所有全局变量引用都在命名空间中,就更容易看出哪些变量是局部变量,哪些变量是全局变量

if ( global::var == 1 ) ...

现在通过搜索 global::var 你会得到一个使用它的变量列表,然后你需要逐个检查使用案例,看看一个变量是否在多个模块中使用,或者不是,在那些情况下您可能需要将它作为函数参数传递,在其他情况下声明它是一个局部变量。

这是一种麻烦的方法,但消除全局变量总是值得的。

关于c++ - 在C++程序中删除全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11606532/

相关文章:

C++:为变量设置精度,不仅用于计数

c++ - 在这种情况下比较 std::vector 或 std::set 的时间复杂度 - 效率更高?

java - 使用 find-min/find-max 堆栈比 O(n) 更有效?

c++ - 树程序哪里出错了?

algorithm - 最小生成树怕负权重吗?

c++ - 分析序列化代码

c++ - 在不使用 getline 的情况下在 C++ 中读取 stdin

c++ - 将 YUV 写入文件会导致重复的帧

.net - 如何在 .NET 中克隆字典?

haskell - Haskell中有没有类似于列表的数据结构,可以在O(1)中替换元素?