面试题答案
一键面试- 解决方案:
- 使用命名空间(namespace)来解决该问题。可以将全局变量封装在一个独立的命名空间中。例如:
namespace GlobalVars { int globalVar; }
- 在需要使用全局变量的地方,通过命名空间限定符来访问。例如:
void someFunction() { int globalVar = 10; // 局部变量 // 访问全局变量 GlobalVars::globalVar = 20; }
- 原理:
- 命名规范:C++命名规范提倡通过合理使用命名空间来避免命名冲突。将全局变量放入特定命名空间,符合命名规范中对命名管理的要求,使代码结构更清晰,命名更具可读性和可维护性。
- 作用域:每个命名空间都有其独立的作用域。局部变量在其所在的函数块作用域内有效,而全局变量现在被封装在
GlobalVars
命名空间作用域内。通过使用命名空间限定符(::
),可以明确指定访问哪个作用域内的变量,从而避免了与局部变量的命名冲突。