控制对C ++全局范围的访问?

时间:2011-12-01 11:00:56

标签: c++ c class scope

我有时必须将一些成熟的c源代码转换为类。有时出现的问题是某些函数共享全局变量。这通常很难找到。

我正在考虑,如果有可能明确禁止某个类使用来自全局范围的符号或类似的东西。有什么想法吗?

修改

当然,我可以搜索所有全局变量并将它们转换为类成员,但这可能有点困难。如果源代码有大约1000行,我无法查看所有代码。我只是想知道,如果编译器可以帮助我找到它们。

1 个答案:

答案 0 :(得分:2)

您可以将所有全局变量放在namespace范围内(可能大于1)。在此之后,编译器将抱怨前全局变量。请相应地去修理。

编辑:对于新问题,,编译器没有设备可以挑出全局变量。此外,查找全局变量很容易,不需要进行代码审查或重组。这是一项机械工作。一旦找到它,请将其括在namespace范围内。 e.g。

int g_value;

转换为,

namespace Globals {
  int g_value;
};