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では、簡単なルーチンを次に示します.
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;
}