2017-05-25 15 views
2

の前にスコープ解決演算子が置かれているコードが出てきました。いつ私たちはそれを使用しますか?それはどういう意味ですか?誰でも説明できますか?new(:: new)の前にスコープ解決演算子を使用するのはいつですか?

+0

あなたはそれが他のコンテキストで何を知っていますか? (もしそうでないなら、なぜそうではありませんか?)新しいもののために何か他のものを意味すると期待していますか? (もしそうなら、どうして?)<---これらに答えることで、あなたの質問は再びうまくいくでしょう。 –

答えて

4

::newは、明示的なグローバル演算子です。これは、定義可能な様々なクラススコープのオペレータnewとは対照的です。たとえば、私がoperator newmyclassの中に定義し、同じクラスでグローバルなものを使用したいのであれば、私は::newと言っていましたが、私がnewと言った場合、私が定義したクラス固有の機能を得るでしょう。

汎用テンプレートコードでは、どのタイプのものを割り当てるかもわかりませんが、クラス固有のアロケータを使用しないようにしたい場合もあります(たとえば、結果をそれにはグローバル::deleteを使用するいくつかのAPI)。ここで

は、すべての可能な事業者の参考のためnewの大きなリストです:http://en.cppreference.com/w/cpp/memory/new/operator_new

+2

正しい複数形の上のマーク –

+0

新しいプレースメントは言及に値します。それは私の最も一般的な ':: new'の使用です。 – Yakk

関連する問題