Так что я эту функциюКак использовать перегруженный [] в одном файле C++
template<class KEY,class T, bool (*tlt)(const KEY& a, const KEY& b)>
T BSTMap<KEY,T,tlt>::put(const KEY& key, const T& value) {
if (!has_key(key))
throw KeyError("BSTMap::put");
this[key] = value;
++mod_count;
return this[key];
}
который предполагается использовать мой перегруженный [], как показано в этом коде.
T& BSTMap<KEY,T,tlt>::operator [] (const KEY& key) {
if (has_key(key))
return find_key(map, key)->value.second;
find_key(map, key)->value = Entry(key, T());
used++, mod_count++;
return find_key(map, key)->value.second;
}
По существу, []
оператор в этом случае принимает ключ и создает запись, если она не существует, в противном случае она возвращает ссылку на существующее значение в этой области. Мой вопрос заключается в том, как использовать перегруженные операторы []
в файле для изменения моих данных. Я пробовал использовать this[]
, но это не работает.
'оператор [] (ключ) '? – crashmstr