A *a = new A();
これはポインタまたはオブジェクトを作成しますか?
私はC++の初心者なので、この違いを理解したいです。
A
両方: (オブジェクト)の新しいインスタンスを作成し、それへのポインタを作成しましたa
。
次の 2 つのステートメントに分けることができます。
A *a; // Declare `a` of type: pointer to `A`
a = new A(); // create a new instance of `A` and
// assign the resulting pointer to `a`
A
これにより、ヒープに型のオブジェクトが作成され、そのオブジェクトへのポインターa
が格納されます (スタックに格納されます)。
PSそれを使い終わったら呼び出すことを忘れないでくださいdelete a
。そうすれば、それをA
破棄してそのメモリをヒープに戻すことができます。a
さらに良いことに、スマート ポインターに変わります。
両方を作成します。スタック
にタイプのオブジェクトを作成し、ヒープにタイプのオブジェクトを作成します。 A*
A
に相当
A *a;
a = new A();