C の世界では、「::」で示されるスコープ解決演算子は、その対応物である「。」オペレーター。 Java などの他の言語は単一の演算子をさまざまな目的に利用しますが、 C は、メンバー変数とクラス名のあいまいさを解決するために特別に調整された専用の演算子を選択します。
個別の演算子に対する C の要件の特殊性演算子は、メンバー変数と派生クラス型が同じ名前を共有するシナリオを定義する言語の機能に由来します。次のコード サンプルを考えてみましょう:
struct foo { int blah; }; struct thingy { int data; }; struct bar : public foo { thingy foo; }; int main() { bar test; test.foo.data = 5; test.foo::blah = 10; return 0; }
この例では、派生クラス bar のメンバー変数 foo は親クラス foo と同じ名前を共有します。この 2 つを区別するために、C ではスコープ解決演算子を採用し、「::foo::blah」を使用して派生クラスへの唯一の参照を許可します。このような状況では、この曖昧さ解決メカニズムが不可欠になります。
以上がC がスコープ解決演算子 :: を使用するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。