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が使用され、ネーミングスペースの名前が次のように表示されます.
    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++教程