ホームページ > バックエンド開発 > C++ > スコープ解決演算子 (::) はスコープなしで何をしますか?

スコープ解決演算子 (::) はスコープなしで何をしますか?

Mary-Kate Olsen
リリース: 2024-12-06 22:16:13
オリジナル
445 人が閲覧しました

What Does the Scope Resolution Operator (::) Do Without a Scope?

Void のスコープ解決演算子

スコープ解決演算子 (::) は通常、特定のスコープのメンバーにアクセスするために使用されます。ただし、次の例のように、スコープなしで使用することもできます。

::foo();
ログイン後にコピー

スコープなしのスコープ解決演算子の目的

使用時スコープがない場合、スコープ解決演算子はグローバル スコープを参照します。これは、特定のクラスまたは名前空間内で定義されていないシンボルにアクセスすることを意味します。

スコープなしでスコープ解決演算子を使用する例

次のコードを考えてみましょう。

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
};
ログイン後にコピー

上の例には 2 つの bar() 関数があります。1 つはグローバル関数で、もう 1 つはグローバル関数です。もう 1 つはクラスのメンバー関数です。クラス メンバー関数 some_func() 内から bar() を呼び出すと、クラス メンバー関数が呼び出されます。ただし、::bar() を使用すると、グローバル bar() 関数に明示的にアクセスできます。

要約すると、スコープのないスコープ解決演算子はグローバル スコープを参照し、グローバル シンボルにアクセスできるようになります。あらゆるコンテキスト。これは、同じ名前を持つ複数のシンボル間の曖昧さをなくす必要がある場合、またはクラス メンバー関数内からグローバル シンボルにアクセスする必要がある場合に特に便利です。

以上がスコープ解決演算子 (::) はスコープなしで何をしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート