【发布时间】:2020-07-10 07:20:59
【问题描述】:
我了解到“::”是一个范围解析运算符,并且开始了解它的用途。
但是,我看到在某些代码中使用了没有前缀的“::”。我以前从未见过。例如:
::memcopy();
::GetKeyBoardState();
只是对语法感到好奇,需要在代码中使用“::”。我删除了“::”,而 Intellisense 并没有在红色下划线,所以想知道发生了什么。谢谢
【问题讨论】:
-
为了确保它是从没有命名空间调用的,我猜。否则有人可能会写
using namespace ...;,其中可能有同名的函数,这可能会导致歧义。 -
旁注:Intellisense 会给你一个粗略的估计,如果你编译的结果是什么。实际上,编译通常会得到与 Intellisense 显示的完全不同的结果。