2017-05-25 23 views
2

我遇到了一个代码,其中范围解析运算符放置在新的之前。我们什么时候使用它。它的意义是什么。请有人能解释一下吗?我们何时在新的(:: new)之前使用范围解析运算符?

+0

你知道那是什么在其他情况下? (如果没有,为什么不呢?)你是否期望它对于'new'有其他意义? (如果是这样,为什么?)<---回答这些将使您的问题再次变得更好 –

回答

4

::new是显式的全局运算符。这与可能定义的各种类范围的运营商new相反。例如,如果我在myclass中定义了一个operator new,然后在同一个类中我想使用全局函数,我会说::new,而如果我说的话我会得到我定义的类特定函数。

我也可能在通用模板代码中使用::new,我不确定我可能会分配什么类型,但想确保我没有使用任何类特定的分配器(例如,我可能需要将结果传递给一些API将使用全球::delete)。

这里的所有可能的运营商new参考的大名单:http://en.cppreference.com/w/cpp/memory/new/operator_new

+2

正确复用的最高分数 –

+0

安置新值得值得一提;这是我最常用的':: new'。 – Yakk

相关问题