我们什么时候在 new (::new) 之前使用作用域解析运算符?
when do we use scope resolution operator before new ( ::new)?
我遇到了一段代码,其中范围解析运算符放在 new 之前。我们什么时候使用它。这是什么意思。请问有人能解释一下吗?
::new
是显式全局运算符。这与可能定义的各种 class 范围的运算符 new
相反。例如,如果我在 myclass
中定义一个 operator new
,然后在同一个 class 中我想使用全局的,我会说 ::new
,而如果我说new
我会得到我定义的 class-特定函数。
我也可能在通用模板代码中使用 ::new
,我不确定我可能分配的是什么类型,但想确保我不使用任何 class 特定的分配器(例如例如,我可能需要将结果传递给某些 API,后者将在其上使用全局 ::delete
)。
这里列出了所有可能的运算符 new
以供参考:http://en.cppreference.com/w/cpp/memory/new/operator_new
我遇到了一段代码,其中范围解析运算符放在 new 之前。我们什么时候使用它。这是什么意思。请问有人能解释一下吗?
::new
是显式全局运算符。这与可能定义的各种 class 范围的运算符 new
相反。例如,如果我在 myclass
中定义一个 operator new
,然后在同一个 class 中我想使用全局的,我会说 ::new
,而如果我说new
我会得到我定义的 class-特定函数。
我也可能在通用模板代码中使用 ::new
,我不确定我可能分配的是什么类型,但想确保我不使用任何 class 特定的分配器(例如例如,我可能需要将结果传递给某些 API,后者将在其上使用全局 ::delete
)。
这里列出了所有可能的运算符 new
以供参考:http://en.cppreference.com/w/cpp/memory/new/operator_new