【发布时间】:2017-10-26 00:12:42
【问题描述】:
我遇到了一个代码,其中范围解析运算符放在 new 之前。我们什么时候使用它。它的含义是什么。谁能解释一下?
【问题讨论】:
-
你知道它在其他情况下的作用吗? (如果不是,为什么不呢?)您是否期望它对
new有其他含义? (如果是,为什么?)
标签: c++ c++11 scope-resolution
我遇到了一个代码,其中范围解析运算符放在 new 之前。我们什么时候使用它。它的含义是什么。谁能解释一下?
【问题讨论】:
new 有其他含义? (如果是,为什么?)
标签: c++ c++11 scope-resolution
::new 是显式全局运算符。这与可以定义的各种类范围运算符new 不同。例如,如果我在myclass 中定义一个operator new,然后在同一个类中我想使用全局类,我会说::new,而如果我说new,我会得到特定于类的我定义的函数。
我也可能在通用模板代码中使用::new,我不确定我可能分配的类型,但我想确保我不使用任何特定于类的分配器(例如,我可能需要传递结果到一些将使用全局::delete 的API)。
这里列出了所有可能的运算符new 供参考:http://en.cppreference.com/w/cpp/memory/new/operator_new
【讨论】:
::new。