[ベース]C+:名前の役割ドメイン

2591 ワード

各名前には独自のアクティブなスペースがあり、同じ名前が異なる役割ドメインで異なるエンティティを指す可能性があります.
  • 役割ドメイン:通常は{}で区切られています.
  • 名前の有効領域は、名前の宣言から始まり、宣言文が存在する末端で終了します.
  • #include
    using namespace std;
    int main()
    {
        int i = 10;
        for (int j = 0;j <= 10;j++)
        {
    
        }
    }

     
  • main定義は、カッコの前にグローバルスコープ(global scope)を持つ.
  • iはmain関数の役割ドメイン内に定義されており、iからmain関数が終わるまでアクセスできますが、main関数を出すとアクセスできません.
  • j forループ内では,forループを出たらjにアクセスできない.

  • ネストされた役割ドメイン
  • が含まれる役割ドメインを (inner scope)と呼ぶ.
  • は、他の役割ドメインを含む役割ドメインを (outer scope)と呼ぶ.
  • は、内層の役割ドメインが外層の役割ドメインの名前を再定義することを可能にする.
  • #include
    using namespace std;
    int a = 10;
    int main()
    {
        cout << a << endl; // (1)  10
        int a = 0;
        cout << a << endl; // (2)  0
        cout << ::a << endl; // (3)  10
        system("pause");
        return 0;
    }
  • (1)出力10は、aがグローバル役割ドメインで定義されているためである.
  • (2)出力は、局所変数aの再定義後に発生し、現在の役割ドメインの再定義aが出力される.
  • .
  • (3)グローバル役割ドメイン定義のa(役割ドメイン左側が空の場合、グローバル役割ドメインに要求)を出力する.

  • 群れから離れた土拨鼠のブログから、原文リンク:https://www.jianshu.com/p/b768a90568b4
    転載先:https://www.cnblogs.com/damaohai/p/11497214.html