最終更新:2018-07-03 (火) 03:46:10 (2096d)
C++/コンストラクタ
メモ
- C++ではクラスを変数として宣言すると、勝手に引数無しコンストラクタが呼び出されます
デフォルトコンストラクタ
- C++では、クラスを定義したときにコンストラクタを定義しなければ、コンパイラが自動的に引数なしのコンストラクタおよびコピーコンストラクタを補完します
初期化子リスト
hasei::hasei() : kihon() { data2 = 0; } hasei::hasei(int d1, int d2) : kihon(d1) { data2 = d2; }
- 関数定義の右側にコロン(:)で区切って、基本クラスのコンストラクタ呼び出し記述を書きます。
- 動作順序としては、まず、派生クラスのコンストラクタが呼ばれたら、この時の引数を使って基本クラスのコンストラクタを呼び出してから、
メモ
- new演算子を使わない宣言では、スタック領域と呼ばれるメモリ領域に実体が確保されます。
- new演算子を使った宣言は、ヒープ領域と呼ばれるメモリ領域に実体が確保されます
- そのスコープから抜けても、実体は確保され続けます