C++におけるnamespaceの使い方

1526 ワード

C++には単一のグローバル変数ネーミングスペースが採用されている.この単一の空間では、2つの変数または関数の名前が完全に同じである場合、競合が発生します.もちろん、異なる名前を使うこともできますが、別の変数も全く同じ名前を使うことを知らないことがあります.プログラムの都合上、同じ名前を使わなければならない場合があります.例えば変数string userを定義しましたnameは、呼び出されたライブラリファイルや別のプログラムコードにも同じ名前の変数が定義されている可能性があります.これは競合します.ネーミングスペースはC++の変数、関数のネーミング競合を解決するためにサービスされます.解決策は、strTemp変数を異なる名前のネーミングスペースに定義することです.まるで張家にテレビがあるかのように、李家にも同じ型番のテレビがあるが、私たちがはっきり区別できるのは、彼らが異なる家庭に属しているからだ.
v
ネーミングスペースは、グローバルな役割ドメインを異なる部分に分割します.
v
異なるネーミングスペースの識別子は、競合することなく同じ名前で使用できます.
v
ネーミングスペースは互いにネストできます
v
グローバル役割ドメインはデフォルトネーミングスペースとも呼ばれます
v
C++
ネーミングスペースの使用:
v
ネームスペース全体を使用:
usingnamespace
name
;
v
ネーミングスペースの変数を使用するには、次の手順に従います.
using
name
::
variable
;
v
デフォルトのネーミングスペースの変数を使用します.
::
variableでは、簡単なルーチンを次に示します.
#include <stdio.h>

namespace First
{
    int i = 0;
}

namespace Second
{
    int i = 1;
    
    namespace Internal
    {
        struct P
        {
            int x;
            int y;
        };
    }
}

int main()
{
    using namespace First;
    using Second::Internal::P;
    
    printf("i = %d
", i); //first i 0 printf("i = %d
", Second::i);//Second i 1 P p = {2, 3}; printf("p.x = %d
", p.x); // namespace Second namespace Internal printf("p.y = %d
", p.y); printf("Press any key to continue..."); getchar(); return 0; }