Android NDK開発の旅18--C+--ネーミングスペース
3893 ワード
前言——C++紹介 C++はCのスーパーセットであり、実際には、いかなる合法的なCプログラムも合法的なC++プログラムである. C++はCコードと混成することができ、C++にはCを書くことができますが、逆にできません. C++はオブジェクト向けプログラミング言語であり、Cはプロセス向けプログラミングである. C++対Cの強化.C++にはclass、参照の概念があり、スタックメモリの割り当てはC言語のmalloc、freeのほかにnew、deleteキーワードもあります. C++は、プロセス化プログラミング、オブジェクト向けプログラミング、汎用プログラミングをサポートする静的タイプ、コンパイル、汎用、大文字と小文字に敏感な不規則なプログラミング言語です.オブジェクト向けプログラミング C++はオブジェクト向けのプログラム設計を完全にサポートし、オブジェクト向けの開発の4つの特性を含む.パッケージ 抽象 継承 マルチステート C++のネーミングスペース
基本概念
ネーミングスペースは、Javaのパッケージ(照合)に似た名前空間とも呼ばれます.プロジェクトが大きい場合は、異なる人が書いたコード、異なるライブラリのコードを区別するために使用されます.異なる名前空間の下では,関数名,変数名,クラス名などを繰り返すことができる.
このような場合、あるクラスにZaraという学生が2人いる場合、それらを明確に区別するために、私たちは名前のほかに、家族の住所や両親の名前など、追加の情報を使用しなければなりません.同様の状況はC++アプリケーションにも現れます.たとえば、xyz()という名前の関数を書くことができます.別の使用可能なライブラリにも同じ関数xyz()があります.これにより、コンパイラはどのxyz()関数を使用しているかを判断できません.そこで,異なるライブラリ内の同じ名前の関数,クラス,変数などを区別するための付加情報として利用できるネーミング空間という概念を導入した.ネーミングスペースを使用すると、コンテキストが定義されます.本質的に、ネーミングスペースは範囲を定義します.
ネーミングスペースの定義
ネーミングスペースの定義には、キーワードnamespaceが使用され、ネーミングスペースの名前が次のように表示されます.
ネーミングスペースを持つ関数または変数を呼び出すには、次のようにネーミングスペースの名前を付ける必要があります.
≪インスタンス|Instance|emdw≫
义齿
USing namespaceコマンドを使用すると、ネーミングスペースを使用するときにネーミングスペースの名前を付ける必要がなくなります.このコマンドは、後続のコードが指定したネーミングスペースの名前を使用することをコンパイラに伝えます.
usingコマンドは、ネーミングスペース内の特定のアイテムを指定するためにも使用できます.たとえば、stdネーミングスペースのcoutセクションのみを使用する場合は、次の文を使用できます.
その後のコードではcoutを使用する場合、接頭辞としてネーミングスペース名を付ける必要はありませんが、stdネーミングスペースの他のアイテムは、以下に示すようにネーミングスペース名を接頭辞として追加する必要があります.
ネストされたネーミングスペースネーミングスペースはネストできます.次のように、1つのネーミングスペースで別のネーミングスペースを定義できます.
:演算子を使用すると、ネストされたネーミングスペースのメンバーにアクセスできます.
上の文でnamespace_を使用している場合name 1では、この範囲内でnamespace_name 2の要素も使用できます.以下に示します.
特に感謝します:菜鳥C++教程
基本概念
ネーミングスペースは、Javaのパッケージ(照合)に似た名前空間とも呼ばれます.プロジェクトが大きい場合は、異なる人が書いたコード、異なるライブラリのコードを区別するために使用されます.異なる名前空間の下では,関数名,変数名,クラス名などを繰り返すことができる.
このような場合、あるクラスにZaraという学生が2人いる場合、それらを明確に区別するために、私たちは名前のほかに、家族の住所や両親の名前など、追加の情報を使用しなければなりません.同様の状況はC++アプリケーションにも現れます.たとえば、xyz()という名前の関数を書くことができます.別の使用可能なライブラリにも同じ関数xyz()があります.これにより、コンパイラはどのxyz()関数を使用しているかを判断できません.そこで,異なるライブラリ内の同じ名前の関数,クラス,変数などを区別するための付加情報として利用できるネーミング空間という概念を導入した.ネーミングスペースを使用すると、コンテキストが定義されます.本質的に、ネーミングスペースは範囲を定義します.
ネーミングスペースの定義
ネーミングスペースの定義には、キーワードnamespaceが使用され、ネーミングスペースの名前が次のように表示されます.
namespace namespace_name {
//
}
ネーミングスペースを持つ関数または変数を呼び出すには、次のようにネーミングスペースの名前を付ける必要があります.
name::code; // code
≪インスタンス|Instance|emdw≫
#include
using namespace std;
//
namespace first_space{
void func(){
cout << "Inside first_space" << endl;
}
}
//
namespace second_space{
void func(){
cout << "Inside second_space" << endl;
}
}
void main ()
{
//
first_space::func();
//
second_space::func();
system("pause");
}
:
Inside first_space
Inside second_space
义齿
USing namespaceコマンドを使用すると、ネーミングスペースを使用するときにネーミングスペースの名前を付ける必要がなくなります.このコマンドは、後続のコードが指定したネーミングスペースの名前を使用することをコンパイラに伝えます.
#include
using namespace std;
//
namespace first_space{
void func(){
cout << "Inside first_space" << endl;
}
}
//
namespace second_space{
void func(){
cout << "Inside second_space" << endl;
}
}
using namespace first_space;
void main ()
{
//
func();
system("pause");
}
:
Inside first_space
usingコマンドは、ネーミングスペース内の特定のアイテムを指定するためにも使用できます.たとえば、stdネーミングスペースのcoutセクションのみを使用する場合は、次の文を使用できます.
using std::cout;
その後のコードではcoutを使用する場合、接頭辞としてネーミングスペース名を付ける必要はありませんが、stdネーミングスペースの他のアイテムは、以下に示すようにネーミングスペース名を接頭辞として追加する必要があります.
#include
using std::cout;
int main ()
{
cout << "std::endl is used with std!" << std::endl;
system("pause");
return 0;
}
:
std::endl is used with std!
ネストされたネーミングスペースネーミングスペースはネストできます.次のように、1つのネーミングスペースで別のネーミングスペースを定義できます.
namespace namespace_name1 {
//
namespace namespace_name2 {
//
}
}
:演算子を使用すると、ネストされたネーミングスペースのメンバーにアクセスできます.
// namespace_name2
using namespace namespace_name1::namespace_name2;
// namespace:name1
using namespace namespace_name1;
上の文でnamespace_を使用している場合name 1では、この範囲内でnamespace_name 2の要素も使用できます.以下に示します.
#include
using namespace std;
//
namespace first_space{
void func(){
cout << "Inside first_space" << endl;
}
//
namespace second_space{
void func(){
cout << "Inside second_space" << endl;
}
}
}
using namespace first_space::second_space;
int main ()
{
//
func();
system("pause");
return 0;
}
:
Inside second_space
特に感謝します:菜鳥C++教程