Ich habe ein Problem, das der Operator [] zu verwenden, herauszufinden, einen Wert zuzuweisen, ich habe 2 verschiedene Fehler,Überlastbügel Bediener
„binary‚=‘: kein Operator gefunden, die einen rechten Operanden erfolgt vom Typ 'double' (oder es gibt keine akzeptable Konvertierung) "
Kein Operator" = "entspricht diesen Operanden.
Fehle ich hier etwas?
Kopf
Class CMyVector{
public:
double operator[](const int index) const;
double & operator[](const int index);
CMyVector operator+(const CMyVector mv1);
}
cpp
double CMyVector::operator[](const int index) const
{
return arr[index];
}
double & CMyVector::operator[](const int index)
{
return arr[index];
}
CMyVector CMyVector::operator+(const CMyVector mv1)
{
CMyVector *retval = new CMyVector();
retval[0] = arr[i] + mv1[i];
return *this;
}
Arbeitete wie ein Charme, aber ich habe nur verwendet * dies wie in der Antwort unten erwähnt. –
@JoachimGotzes Das hat eine ganz andere Bedeutung und wird dir nicht geben, was du willst. Beachten Sie, dass Joachim dieses Bit aus seiner Antwort gelöscht hat. Wahrscheinlich hat er angenommen, dass Sie stattdessen 'operator + =' implementieren. – TartanLlama
Ja, Sie haben Recht, aber ich habe immer noch gearbeitet, wenn ich vec = vec2 * 2; Ich habe die richtigen Werte mit vec. –