我遇到了一段代码,其中作用域解析运算符放在 new 之前。我们什么时候使用它。这是什么意思。请问有人能解释一下吗?
最佳答案
::new
是显式全局运算符。这与可能定义的各种类作用域运算符 new
相反。例如,如果我在 myclass
中定义了一个 operator new
,然后在同一个类中我想使用全局的,我会说 ::new
,而如果我说 new
,我会得到我定义的特定于类的函数。
我也可能在通用模板代码中使用 ::new
,我不确定我可能分配什么类型,但想确保我不使用任何特定于类的分配器(例如我可能需要将结果传递给一些将在其上使用全局 ::delete
的 API。
这里有一个包含所有可能运算符的大列表 new
以供引用:http://en.cppreference.com/w/cpp/memory/new/operator_new
关于c++ - 我们什么时候在 new (::new) 之前使用作用域解析运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44178893/