(*this)
kehrt Ihr Matrix
Objekt. Daher ruft (*this)[i]
Matrix::operator[](i)
. Ihre Funktion ruft sich ohne Abschlussbedingungen, die ähnlich wie diese:
int foo() {
return foo();
}
, die, wie man sich vorstellen kann, wird ziemlich schnell zum Absturz bringen.
Sie möchten möglicherweise std::vector::operator[]
von einer Mitgliedsvariablen aufrufen. Zum Beispiel, wenn Ihre Klasse einen privaten Vektorobjekt vec
genannt hat, möchten Sie vielleicht tun:
double& Matrix::operator[](int i)
{
return this->vec[i];
}
Auch ist this->member
Abkürzung für (*this).member
, verwenden Sie es öfter!
Erkläre, was das mit deiner [Gummiente] (https://en.wikipedia.org/wiki/Rubber_duck_debugging) macht: '(* this) [i]'. – juanchopanza
Sieht aus wie eine Rekursion. – Archie
Sollten Matrizen nicht mehr als eine Dimension haben? –