名前空間の概念
最初にC ++を学ぶとき、最初に書くコードは間違いなく次のとおりです。
#include<iostream>
using namespace std;
int main()
{
cout<<"hello world"<<endl;
return 0;
}
ほとんどの初心者はまだコードの最初の2行の意味を知らないと思います。実際、最初は知りませんでした。先生はこのように書くと言ったので、覚えておいてください。それから徐々に理解しました。 。最初の行は理解しやすいです。これは標準の入出力ヘッダーファイルです。焦点はコードの2行目にあります。正直なところ、最初はこのコード行が何のためにあるのか本当にわかりませんでした。理解してください、それで、すべてのピットは実際に自分自身の進歩のためのステップです。
このコード行に含まれる知識は名前空間と呼ばれ、名前空間を理解する方法は、最初に次のコードを見てください。
#include<iostream>
using namespace std;
int main()
{
int cout = 0;
cout << cout << endl;
return 0;
}
操作の結果は直接無効になります。C++には、多数の変数、関数、およびクラスがあります。これらの変数、関数、およびクラスの名前はすべてグローバルスコープに存在するため、多くの競合が発生する可能性があります。名前空間を使用する目的は、識別子の名前をローカライズして、名前の競合や名前の汚染を回避することです。
いくつかの重要な情報を改善します。
- 名前空間は、名前の競合や名前の汚染を回避するために使用されます
- キーワード:名前空間
- 変数と関数の両方を定義できます
名前空間の定義
- 一般的な定義
名前空間を定義するには、namespaceキーワードを使用する必要があります。
最初に共通の名前空間Nanlin_1を定義します。
namespace Nanlin_1
{
int a; //定义变量
int Add(int b,int c)//定义函数
{
return b+c;
}
}
- 名前空間はネストすることもできます
namespace Nanlin_2
{
int a;
int Add(int b,int c)
{
return b+c;
}
namespace Nanlin_3
{
int d;
int Sub(int e,int f)
{
return e+f;
}
}
}
- 同じプロジェクトに同じ名前の複数の名前空間が存在する可能性があり、コンパイラは最終的にそれらを1つの名前空間に結合します
- 注意すべき点の1つは、名前空間が実際に新しいスコープを定義し、名前空間内のすべてがこの名前空間に制限されていることです。
名前空間の使用法
名前空間を使用する方法は3つあり、コードの説明で説明されています。
名前空間Nanlinを一律に使用します。
namespace Nanlin
{
int a=1;
int b=2;
}
-
名前空間Nanlinの
使用と名前空間stdの使用は同じです。これは、C ++標準ライブラリを拡張するためのものです。cout、cinなどを直接使用できます。以下のコードの結果を参照してください。aとメイン関数bを直接使用できます。 。
要約すると、この使用方法の利点は便利ですが、命名の汚染をもたらします -
Nanlin :: aを使用する
これは、aを名前空間に個別に配置するため、気軽に使用できます。
今回、bを再度使用すると、エラーが発生します。aのみを使用する場合は実行できますが、bを使用する場合は、使用方法については、3番目の使用方法をご覧ください。
要約すると、このメソッドは、名前空間内の特定の変数または関数を個別に解放することです。
- Nanlin :: a、Nanlin :: b
上記の2つのタイプの1つは、カジュアルな使用のためにすべてを拡張することであり、もう1つは、1つを個別に拡張することです。これは、拡張せず、アクセスを指定することです。
aを使用する場合は、aへのアクセスを指定し、bを使用する場合は、bへのアクセスを指定します。
もちろん、上記の3つの使用方法を混在させることができます