2017-05-25 49 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

相關問題