控制对c++全局作用域的访问
Control access to C++ global scope?
我有时不得不将一些成熟的c源代码转换为类。有时会出现的一个问题是某些函数共享全局变量。这通常很难找到。
我只是在想,如果有可能禁止一个类显式地使用全局作用域的符号或类似的东西。什么好主意吗?
编辑:当然,我可以搜索所有全局变量并将它们转换为类成员,但这可能有点困难。如果源代码有大约1000行,我不能审查所有的代码。我只是想知道,如果编译器可以帮助我找到他们。
您可以将所有全局变量放在namespace
范围内(可能大于1)。在此之后,编译器将会为非全局变量报错。去做相应的修改。
Edit:对于新问题,No没有从编译器中挑选出全局变量的功能。此外,查找全局变量很容易,不需要代码审查或重构。这是一项机械工作。一旦找到它,就把它放在namespace
作用域中。例如
int g_value;
皈依,
namespace Globals {
int g_value;
};
相关文章:
- 如何在C++中访问作用域的变量输出?
- 如何确保 Visual C++ 不允许作用域枚举访问?
- 即使在离开作用域后,如何访问在堆上分配的变量C++?
- 无法从派生类型的作用域访问另一个实例的受保护成员
- 如何在C++中嵌套词法作用域可访问的作用域中声明静态信息?
- 在没有显式作用域的情况下无法访问模板基类的静态成员
- 在自动作用域中使用实例时需要"public"访问修饰符
- 无法访问类作用域中的对象
- 在释放了所有作用域内指针之后仍然可访问内存
- 作用域问题:如何从类外查看(不访问也不修改!)私有属性
- 为什么离开作用域后仍然有对结构的有效访问
- 使用作用域运算符访问非静态成员变量
- C++通过类作用域访问实例的成员
- 访问在类外部声明的作用域枚举
- 通过作用域和类型化枚举访问元组值失败
- 在c++中是否有办法访问外部作用域中的局部变量?
- 控制对c++全局作用域的访问
- c++访问上层作用域而不是全局作用域
- 在第三次调用中,当地址因本地作用域而被销毁时,temp2->next 如何能够访问第二个节点的地址?
- 如何递归访问父作用域