我知道在 C++ 中,我们使用 ::
来限定变量或函数的命名空间,例如 myNamespace::a
。但我注意到一些用法,例如 ::myFunction()
。这是否意味着该函数属于全局命名空间?
最佳答案
如果代码编译通过,那么是的,::myFunction()
正在引用 myFunction
的全局声明。
这在局部定义影响全局定义时最常用:
namespace local {
int myFunction() {}; // local namespace definition
};
int myFunction() {}; // global definition.
using namespace local;
int main() {
// myFunction(); // ambiguous two definitions of myFunction in current scope.
local::myFunction(); // uses local::myFunction();
::myFunction(); // uses global myfunction();
关于c++ -::myFunction() 是否属于全局命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38620500/