C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++のスコープ解決演算子


::(スコープ解決)演算子は、スコープが可変であるために非表示の名前を取得して、引き続き使用できるようにするために使用されます。スコープ解決演算子は、単項とバイナリの両方として使用できます。名前空間スコープまたはグローバルスコープ名が、ブロックまたはクラス中に同等の名前の特定の宣言によって非表示になっている場合は、una​​ryスコープ演算子を使用できます。たとえば、my_varという名前のグローバル変数とmy_varという名前のローカル変数がある場合、グローバルmy_varにアクセスするには、スコープ解決演算子を使用する必要があります。

#include <iostream>  
using namespace std;  

int my_var = 0;
int main(void) {
   int my_var = 0;
   ::my_var = 1;  // set global my_var to 1
   my_var = 2;    // set local my_var to 2
   cout << ::my_var << ", " << my_var;
   return 0;
}
出力

これにより、出力が得られます-

1, 2

main関数で宣言されたmy_varの宣言は、グローバル名前空間スコープで宣言されたmy_varという名前の整数を非表示にします。ステートメント::my_var=1は、グローバル名前空間スコープで宣言されたmy_varという名前の変数にアクセスします。

スコープ解決演算子を使用して、クラス名またはクラスメンバー名を使用することもできます。クラスメンバー名が非表示になっている場合は、クラス名とクラススコープ演算子を前に付けることで使用できます。たとえば、

#include <iostream>
using namespace std;
class X {
   public:
   static int count;
};
int X::count = 10;  // define static data member

int main () {
   int X = 0;   // hides class type X
   cout << X::count << endl;   // use static member of class X
}
出力 これにより出力が得られます-

10

  1. C#のスコープ解決演算子とは何ですか?

    C#のスコープ解決演算子は、C++とは異なる意味を持っています。 C ++では::はグローバル変数に使用されますが、C#では名前空間に関連しています。 異なる名前空間で識別子を共有するタイプがある場合、それらを識別するには、スコープ解決演算子を使用します。 たとえば、System.Consoleクラスを参照するには、スコープ解決演算子でグローバル名前空間エイリアスを使用します。 global::System.Console 例 using myAlias = System.Collections; namespace Program {    class Demo {

  2. C#のスコープ解決演算子(::)はどこで使用しますか?

    C ++では、スコープ解決演算子、つまり::がグローバル変数に使用されますが、C#では名前空間に関連しています。 異なる名前空間で識別子を共有するタイプがある場合、それらを識別するには、スコープ解決演算子を使用します。 たとえば、System.Consoleクラスを参照するには、スコープ解決演算子-を指定してグローバル名前空間エイリアスを使用します。 global::System.Console 例を見てみましょう- 例 using myAlias = System.Collections; namespace Program {    class Demo { &