2011-07-25 5 views

答えて

0

クラスにポインタメンバーが含まれている場合は、のが動的に割り当てられます。デフォルトのバージョンでは浅いコピーが作成されるため、独自のバージョンのコピーコンストラクタを用意する必要があります。

+0

このルールは広すぎるものであり、私が実装したポインタを持つクラスでは一般的に偽です。私がポインタを使用する唯一の理由は、所有していない再割り当て可能な参照と同じです。そしてその場合、コンパイラーはコピーコンストラクターを生成しました。 –

+0

@ベンジャミン・リンドリー:理解を深めるのに役立つことを願っています。 –

0

そうではありません。

デフォルトのコピーコンストラクタは、99.9%のケースで完璧です。

所有ポインタを持つクラスの例外。ここでは、デフォルトのコピーコンストラクタの浅いコピーが、初心者のために期待通りに機能しません。

しかし、クラスにポインタを置いてはいけないので、問題にはなりません。これをクリアするためには、所有ポインタはスマートポインタ(またはコンテナタイプ)オブジェクトに含める必要があります。だからそれは問題ではない。

オブジェクトのようなスマートなポインタやコンテナを書く場合は、3つのルールを実装する必要があります。

関連する問題