C++-解析関数

965 ワード

  • メンバー関数の一種
  • 名前はクラス名と同じ
  • 前面に"~"
  • を付ける
  • パラメータと戻り値がない
  • クラスは最大1つの構造関数
  • しかありません.
  • オブジェクトが消滅したとき->自動呼び出し
  • 対象が消滅する前に後始末をする
  • 割り当てられた空間等を解放する
  • .
  • クラスを定義するときに構造関数が書かれていない場合、コンパイラはデフォルトの構造関数を生成します.
  • は、ユーザが申請したメモリの解放等の清掃作業を解放することに関与しない
  • .
  • は解析関数を定義し、コンパイラはデフォルトの解析関数
  • を生成しない.
    class String{
      private:
          char * p;
      public:
          String(){
              p = new char[10];
           }
          ~String();
    };
    String::~String(){
    //  ,         ,       [],    delete p          。
        delete [] p;
    }
    
  • オブジェクト配列のライフサイクルが終了すると->オブジェクト配列の各要素の構造関数が呼び出されます.
  • delete演算は、構造関数呼び出し
  • をもたらす.
    Ctest * pTest;
    p'Test = new Ctest;//       
    delete pTest;//      
    pTest = new Ctest[3];//      3 
    delete[] pTest;//      3 
    
  • の構成の順序
  • Demo d1(1);
    void Func(){
        static Demo d2(2);
        Demo d3(3);
        cout<