0

私のすべてのクラスで、教授は、アイテムを作成し、それを渡すためのポインターを作成するためにこの手法を使用することを強調しました。

更新しました 入力中にちょうど間違い。Javaに慣れすぎ。

Item item;
Item* pItem = &item;

これで、メモリ内でアイテムを複製することなく、pItem を使用してアイテムを安全に渡すことができます。ただし、次のことを行うだけだとしたらどうでしょう。

Item* item = new Item;

次に、メインまたはあなたが持っているもので逆参照できるポインターと、単純に変数として渡すことができ、重複しないと確信できるポイントがあります。

新しいオブジェクトを作成するときにポインタを作成することに何か問題がありますか?

また、夏を ALLEGRO5 で過ごすために、しばらく Java を使って C++ に戻ってきました。

行う:

Item item;

実際に新しい Item オブジェクトを作成しますか、それとも Java のように null 参照ですか?

4

3 に答える 3

1

メモリをコピーせずにアイテムを渡す方法を探している場合 (またはコピー コンストラクターでさらに重い処理を行う場合) は、生のポインターの代わりに参照を検討できます。

参照にはポインターの柔軟性がすべて備わっているわけではありません (つまり、作成後に NULL になったり、別のオブジェクトを指したりすることはできません) が、オブジェクトの所有権とライフサイクルの点ではるかにクリーンです (参照を所有することも、オブジェクトを解放する責任も負わない)。 ; 一時的な const 参照を使用すると、所有権を取得できますが、それだけです)。

生のポインターの代わりにスマート ポインターを検討することもできますが、参照とは異なり、追加のコストが発生します。

于 2013-05-05T06:55:37.163 に答える