我在代码中看到了这两种方法。你能解释一下这两者有什么区别吗?因为我认为它与 C++ 完成命名空间查找的方式有关,您能否提供一些有关此的信息,或者可能是一个好的文档的链接?谢谢。

最佳答案

其实并不重要,至少在大多数情况下都没有。

前面的冒号以::identifier1::identifier2格式表示要查看identifier1的全局作用域,然后在该范围内寻找identifier2

我们使用identifier1::identifier2格式查看identifier1的当前范围。如果找不到,则搜索父作用域,依此类推,直到找到它。然后,我们在刚刚找到的范围内搜索identifier2

如果您已经在全局范围内,那就没关系了。但是,当您在 namespace 或类中嵌套了其他 namespace 或类时,情况就发生了变化。

10-07 22:33