-9
リストクラスのコピーコンストラクタを作成するために、実装に他のメソッドを使用しないという要件がありました。リストクラスのコンストラクタをインプリメンテーションでメソッドを使用せずにコピー
class List {
private:
struct Node {
NodeData *data;
Node *next;
};
Node *head;
};
要件は、このクラスのコピーコンストラクタを書くことであり、我々はNODEDATAクラス
のためのコピーコンストラクタを使用することを除いて実施して任意の他の方法を使用していない次のようクラス断片であります
list::list(const list &t){
Node* q;
q=new Node;
while (p!=NULL){
q->x= p->x;}
}
はこれではありません。次のように私はコピーコンストラクタを書かれている
作業中は、必要に応じてコピーコンストラクタを記述する方法を助けてください。
まあ、それは正しい方向へのステップです。 [前よりも良い](https://stackoverflow.com/questions/42523112/copy-constructor-for-a-pointer-data-linked-list)。あなたの*厳密な*要件がcopy-ctorを書くことであるならば、あなたはそれを(正しいか間違って)やったのです。期待どおりに機能しない場合(あなたのコメント「これは動作していません」と表示されていないように見えます)、ここであなたが言っている以上のことを知っています。つまり、あなたはそれがうまくいくと期待していますし、あなたが書いたコードごとに実際に行っていることとはどう違うのでしょうか。 – WhozCraig
なぜ、あなたのパラメータ 'const list&t' +を使わないのですか?浅いコピーの代わりにデータの深いコピーを作ることを検討してください。これは、 'struct Node'がフィールド' x'を持たないので、コンパイルすべきではありません。 –
@FallaCoulibaly私は、あなたが「何を試したか」を示すための「要求を満たす」ために、いくつかのランダムなコードがタイプされているのだろうかと思います。 –