私のコードに問題があります。私はエラーを取得しています「連想配列> ::ノード::ノード(無効)」:削除された関数を参照しようとすると、」ここで削除された関数を参照しようとしています。
は私のクラスは、ここで
template<typename K, typename V>
class AssociativeArray
{
public:
AssociativeArray(int = 2); // default constructor of a capacity of 2
AssociativeArray(){ delete [] data; }
AssociativeArray(const AssociativeArray<K,V>&);
AssociativeArray<K,V>& operator=(const AssociativeArray<K,V>&);
V& operator[](const K&); // getter
V operator[](const K&) const; // setter
queue<K> keys() const;
int size() const {return siz;};
bool containsKey(const K&) const;
void deleteKey(const K&);
void clear();
private:
int cap;
int siz;
int values;
void capacity(int);
struct Node{K key; V value; bool inUse;};
Node* data; // data = new Node[cap]
void ExpandNode(int,int);
};
であることは私に与えているコンストラクタです問題。
template<typename K, typename V>
AssociativeArray<K, V>::AssociativeArray(int cap)
{
this->cap = cap;
this->siz = 0;
data = new Node[cap]; // ERRORS HERE
for (int index = 0; index < cap; index++)
{
data[index].inUse = false;
}
}
ここにmainの宣言があります。あなたがNode
の生の配列を作成するときに
AssociativeArray<string, AssociativeArray<string, bool>> seen(10);
2番目のコンストラクタが配列を削除するのはなぜですか?それはデストラクタではないでしょうか? – silverscania
私は完全にそれを逃した、それはデストラクタであるはずです。 – asmcriminal
@silverscania〜キーが誤動作しているはずです。いくつかのキーボードでそれを入力する必要があります+次の文字またはそれは表示されません。煩わしい。 –