答えて
グローバルスコープを意味します。競合する関数または変数が同じスコープ内にあり、グローバル変数を使用する必要がある場合は、この演算子を使用する必要があります。あなたは、クラスのメンバ関数内からグローバルバー()関数を呼び出す必要がある場合は、あなたが使用する必要があります
void bar(); // this is a global function
class foo {
void some_func() { ::bar(); } // this function is calling the global bar() and not the class version
void bar(); // this is a class member
};
::バー()関数のグローバルバージョンを取得する:あなたは、のようなものがあるかもしれません。
すでにあなたのローカルスコープ内の関数fooという名前を()持っていますが、グローバルスコープで1にアクセスする必要がある場合には、グローバルスコープ
-1:非常に怠惰です! –
を参照:例えば。
私のC++は錆びますが、関数foo()やグローバルスコープfoo()はローカルスコープで宣言されている関数をローカルスコープで宣言していると思います。 :: foo()はグローバルなものを参照します。
また、名前解決は過負荷解決の前に行われることに注意してください。したがって、現在のスコープに同じ名前のものがある場合、他の名前を探すのを止め、それらを使用しようとします。
void bar() {};
class foo {
void bar(int) {};
void foobar() { bar(); } // won't compile needs ::bar()
void foobar(int i) { bar(i); } // ok
}
scope resolution operator(::
)で始まる名前は、グローバル名前空間に検索されます。単項スコープ演算子で始まる名前::(5.1)が
されています。私たちは、draft C++ standardセクション
3.4.3
修飾名検索(強調鉱山)と言う段落を見て、これを見ることができますグローバルスコープを使用している翻訳単位で検索しました。名前は、グローバル名前空間のスコープで宣言されるか、またはusingディレクティブ(3.4.3.2)のために宣言がグローバルスコープで可視である名前とする。 :: を使用すると、その識別子が隠されていてもグローバル名を参照することができます(3.3.10)。int count = 0; int main(void) { int count = 0; ::count = 1; // set global count to 1 count = 2; // set local count to 2 return 0; }
文言があるN1804に戻って非常に似ています。次のように、これは私たちがグローバル名前空間that would otherwise be hiddenから名前を使用することができ、標準状態として
は、リンクされたドキュメントからの例です。入手可能な最も初期のドラフト規格。
- 1. スコープ解決演算子angularjs
- 2. スコープ解決演算子
- 3. SQL Serverのスコープ解決演算子
- 4. 列挙型スコープ解決演算子
- 5. 適用スコープ解決演算子が
- 6. なぜC++スコープ解決演算子::ですか?
- 7. C++のスコープ解決演算子についての混乱
- 8. PHPスコープ分解能演算子
- 9. クラスキーワードを持つPHPスコープ解決演算子:: class
- 10. PHP:スコープ解決演算子と非静的メソッド
- 11. スコープ演算子とイテレータ
- 12. C++キーワード「使用」またはスコープ解決演算子と、このようにスコープ解決演算子を使用せずに書かれているC++の
- 13. :: C++のテンプレート関数呼び出しの前にスコープ解決演算子
- 14. PHPでスコープ解決演算子を使用してget_class()を行う方法は?
- 15. サイレックスFWは:スコープ解決演算子(とコントローラでカスタムサービスへのアクセス::)事前に
- 16. スコープ解決演算子を使って非静的メソッドを呼び出す
- 17. スコープ解決演算子が2回使用されています
- 18. クラス名にスコープ解決演算子が使用されている意味
- 19. このスコープとは異なるES6 =>関数演算子
- 20. スコープ解決オペレーターの評価
- 21. PHPでスコープ解決演算子を使用してget_class()を使用する方法?
- 22. C++スコープの解像度と条件を持つ3進演算子
- 23. new(:: new)の前にスコープ解決演算子を使用するのはいつですか?
- 24. C++バイナリスコープ解決演算子とクラス
- 25. スコープ付き列挙型でオーバーロードする方法= =演算子?
- 26. なぜイテレータの前に::(スコープのresoulation演算子)を入れますか?
- 27. 角度2解決 - ローカル変数スコープ
- 28. 「T :: *」とはどういう意味ですか? - 奇妙なスコープの解像度演算子
- 29. 'new'演算子の理解
- 30. NServiceBus Autofac子スコープ
なぜコンパイルされませんか? –
[コンパイルされたようです] –
匿名の名前空間で定義するものは、単項スコープ演算子を使用して呼び出すこともできます。 – DrumM