宣言とnewの違い

1.宣言

Vector v;
double len = v.length();
  • C++ではクラスを宣言すると引数なしのコンストラクタが自動で呼び出される。
  • 呼び出されたフィールドにアクセスするには.(ドット)を使う。
  • オブジェクトはスタック領域上に実体が作成される。そのため宣言されたスコープを抜けると自動的に破棄される。

2.new演算子

Vector* v = new Vector();
double len = v->length();
delete v;
  • 呼び出されたフィールドにアクセスするには->(アロー)を使う(ポインタなので)。
  • オブジェクトはヒープ領域上に実体が作成される。 そのためnewを使用して作成されたオブジェクトは、deleteを使用して削除するまで残る。