【问题标题】:what does "::functionName()" imply in c++? [duplicate]"::functionName()" 在 C++ 中意味着什么? [复制]
【发布时间】:2013-06-05 21:11:44
【问题描述】:

我遇到了一段代码,如下所示:

::GetSystemDirectory(buffer, MAX_PATH);

我从未见过以空 :: 开头的函数调用。我一直看到它们与命名空间一起使用。

谁能解释一下空的::是什么意思?

【问题讨论】:

  • 通常是全局命名空间。
  • @Rapptz 如果我只调用没有它的函数怎么办?它只会将其限制在当前命名空间吗?

标签: c++


【解决方案1】:

它是范围解析运算符。前面没有任何内容,表示全局范围。

例如,假设您有一个定义了自己的GetSystemDirectory 方法的类。在该类的方法代码中,要调用全局方法,您需要在其前面添加::,否则默认情况下您将获得特定于该类的方法。 (对于命名空间也是如此。)

【讨论】:

  • 我相信,用:: 调用系统函数最有意义呢?
  • @brainydexter:在过去的 15 年里,我没有做过足够多的 C++ 来真正对此发表意见。 听起来合理。 :-)
猜你喜欢
  • 1970-01-01
  • 2012-05-02
  • 2020-09-24
  • 1970-01-01
  • 2023-01-10
  • 2020-07-02
  • 1970-01-01
  • 1970-01-01
  • 2012-05-29
相关资源
最近更新 更多