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. Windows11にTPM2.0が必要なのはなぜですか?

    コンピューターが5〜6年前のものである場合、TPM 2.0要件のために、Windows11にアップグレードできない可能性があります。しかし、TPM 2.0は本当に必要なのですか、それとも新しいハードウェアを購入させるためのトリックなのですか? Windows 11にTPMが必要な理由と、TPM2.0がない場合にMicrosoftが自動的にアップグレードできない理由を見てみましょう。 TPMとは何ですか? トラステッドプラットフォームモジュール(TPM)は、CPU上またはマザーボードの一部としての小さなチップです。見事なハードウェアではありませんが、コンピュータのセキュリティにおいて重要な

  2. &=演算子はPythonで何をしますか?

    + =演算子は、object .__ iand __()関数のシンタックスシュガーです。 Pythonドキュメントから: これらのメソッドは、拡張された算術割り当て(+ =、-=、* =、@ =、/ =、// =、%=、** =、)を実装するために呼び出されます。 =、&=、^ =、| =)。これらのメソッドは、その場で操作を実行し(自己を変更)、結果を返すようにする必要があります(自己である可能性がありますが、そうである必要はありません)。 例 だからあなたが次のようなことをするとき- a = 6 # 110 in binary b = 5 # 101 in binary a &=