我遇到了一个代码,其中范围解析运算符放在 new 之前。我们什么时候使用它。这是什么意思。请有人解释一下吗?
答案 0 :(得分:4)
::new
是显式全局运算符。这与可以定义的各种类范围的运算符new
相反。例如,如果我在operator new
内定义myclass
,然后在同一个类中我想使用全局类,我会说::new
,而如果我说new
我会得到我定义的特定于类的函数。
我也可能在通用模板代码中使用::new
,我不确定我可能分配的类型,但是要确保我不使用任何特定于类的分配器(例如,我可能需要通过一些API的结果将使用全局::delete
。
以下是所有可能的运算符new
的大列表供参考:http://en.cppreference.com/w/cpp/memory/new/operator_new