【问题标题】:Object declaration with preceding :: in C++ [duplicate]在 C++ 中带有前面 :: 的对象声明 [重复]
【发布时间】:2016-06-30 22:59:57
【问题描述】:

以下在 C++ 中代表什么?

::SomeNameSpace::SomeClass abc;

基本上这和

有什么不同
SomeNameSpace::SomeClass abc;

【问题讨论】:

  • 这就像“巴黎”和“法国巴黎”的区别。通常情况相同,除非你是德克萨斯人。
  • @KerrekSB:不是真的,因为::Paris的定义不能与France::Paris相同。
  • 好吧,它本来可以是using'd....
  • 当你看到这个时,很可能是因为作者输入了 :: 来获取代码提示。
  • @BasinhetVeld:或者他们是一个优秀的程序员。两者之一。

标签: c++ c++11


【解决方案1】:

:: 运算符是 scope 运算符;它表示一些特定的范围。如果没有前缀,则表示全局范围。

所以如果SomeNameSpace在全局范围内,那么::SomeNameSpaceSomeNameSpace是一样的。不同之处在于您是否在非全局范围内并使用SomeNameSpace,因为它首先在当前范围内查找。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-17
    • 2013-12-08
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    相关资源
    最近更新 更多