我在代码中看到了这两种方法。你能解释一下这两者之间的区别吗?因为我认为这与C++完成名称空间查找的方式有关,您能提供一些关于这方面的信息,或者提供一个好的文档的链接吗?谢谢。
发布于 2011-11-27 10:04:46
这真的无关紧要,至少大多数时候不是。
在::identifier1::identifier2格式中,前面的冒号表示查看identifier1的全局作用域,然后在该作用域中查找identifier2。
在identifier1::identifier2格式中,我们改为查看identifier1的当前作用域。如果我们没有找到它,那么会搜索父作用域,依此类推,直到我们找到它。然后,我们在刚刚找到的任何范围内搜索identifier2。
如果您已经在全局作用域中,这将无关紧要。但是,当您在一个名称空间或其中嵌套了其他名称空间或类的类中工作时,情况就会发生变化。
https://stackoverflow.com/questions/8283079
复制相似问题