umwandeln Ich habe einige Probleme mit meinem Code. Ich glaube, ich habe einen Zeiger verpasst, kann ihn aber nicht finden.C2440 Kann Int nicht in Int &
Hier ist mein Code für die Klasse:
template <class T, class U>
class KeyValue
{
private:
T _key;
U _value;
public:
KeyValue();
KeyValue(T key, U value)
{
this->_key = key;
this->_value = value
};
T GetKey() { return this->_key; }
U GetValue() { return this->_value; }
};
Und der Fehler auftritt, in:
template<class T, class U>
inline U & SparseArray<T, U>::operator[](T key)
{
for (std::list<KeyValue<T, U>>::iterator it = list->begin(); it != list->end(); it++)
{
if (it->GetKey() == key)
{
return it->GetValue();
}
}
return (list->insert(list->begin(), KeyValue<T, U>(key, U())))->GetValue();
}
Bitte geben Sie eine richtige [MCVE]. Was Sie hier beschrieben haben, ist nicht genug für jeden Benutzer, um Ihr Problem neu zu erstellen und damit zu diagnostizieren. – Xirema
'inline U &' ist das, was Ihr Member zurückgibt, aber 'obj-> GetValue()' ist das, was es tatsächlich zurückgibt, was 'U GetValue() 'in der tatsächlichen Implementierung ist. Ein Wert. Ein 'U' ist kein' U & '. – WhozCraig