私はHashTableを詳細にコピーしようとしています。私のハッシュテーブルは、リンクされたリストでいっぱいの配列です。 私は既にリンクリストコンストラクタ/コピーコンストラクタ/オーバーライド演算子をコーディングしており、完全に動作します。ディープコピー(おそらくポインタ関連)
次のようにコード化しましたが、forループに問題があります。私はそれがポインタとは何かを持っている疑いがある
HashTable.cpp
HashTable::HashTable()
{
}
HashTable::HashTable(const HashTable & ht)
{
bucketSize = ht.bucketSize;
count = ht.count;
LinkedList** table = new LinkedList*[ht.bucketSize];
for (int i = 0; i < bucketSize; i++) {
table[i] = new LinkedList(ht.table[i]);
}
}
HashTable.h
class HashTable {
public:
HashTable();
HashTable(const HashTable& ht);
private:
// Add your member variables and any private member functions here
int bucketSize = defaultCapacity; //default is 101
int count = 0;
LinkedList table[defaultCapacity];
}
は、しかし、エラーメッセージ、唯一のポップアップが、私は、実行を押したときにありません:中止()が呼び出されました。
作成[最小、完全、かつ検証例](http://stackoverflow.com/help/mcve)と私たちを表示するようにしてみてください。 –
また、 'table'という名前のメンバ変数と、同じ名前のコピーコンストラクタの***ローカル変数***を持つことが問題になるとは思わないでしょうか? –
その行を次のように変更した場合: table = new LinkedList [ht.bucketSize]; テーブルが変更可能な左辺値でなければならないというエラーが表示されます。 私はそれを変更しようとしていません。新しいHashTableを作成しようとしていますが、既存のHashTableは変更しません。 – t3hdaniel