0
現在、私はBag抽象データ型を実装しようとしている課題に取り組んでいます。以下はオブジェクトが返されたときにC++の動的配列がクリアされました
は、私は現在、実装しようとしている方法である:
template <typename T>
Bag<T> Bag<T>::operator+ (const Bag<T>& bag) {
int sizeofCurrentMultiset = cardinality_;
int sizeofPassedMultiset = bag.cardinality_;
int totalSize = sizeofCurrentMultiset + sizeofPassedMultiset;
Bag<T> newBag(totalSize);
for (int i = 0; i < sizeofCurrentMultiset; i++) {
newBag.insert(array_[i]);
}
for (int i = 0; i < sizeofPassedMultiset; i++) {
newBag.insert(bag.array_[i]);
}
return newBag;
}
私は動的配列としての要素を格納しています。
私の問題は、新しいバッグが返されたときに、カーディナリティーを細かく印刷できることです(元のバッグにはそれぞれ2つの要素があります)。しかし、動的配列には数字が含まれていません-1789102などの乱数)。しかし、バッグが返される前に要素をプリントアウトしようとすると、うまく印刷されます。
疑いの余地はありませんが、私は助けに感謝します。
ありがとうございました。
このコードは正常です。問題はあなたの 'insert'メソッドにある可能性があります。もし' insert'がコピーセマンティクスを使っているなら、あなたのコピーコンストラクタにあるかもしれません。 –
すべてを印刷するためのコードを投稿できますか? – Mythli
'Bag'のコピーコンストラクタを作成しましたか?あなたがデフォルトのコピーコンストラクタを取得しているように思えます。 –