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();