Ich habe ein Objekt Matrix und ich überladen den unären Minus-Operator und ich kann nicht mein Programm arbeiten zu machen. Wenn ich den Rückgabetyp als Referenz einfüge, kann ich das Objekt, das ich in der Funktion erstellt habe, nicht zurückgeben, wenn ich den Rückgabetyp als Matrix einfüge, bekomme ich einen Segmentierungsfehler.Unäre minus Operator Überlast C++ Segmentierung Fehler
in der H-Datei:
Matrix operator -() const;
in der CPP-Datei:
Matrix Matrix::operator -() const
{
if (isValid==false)//just a validity check
return *this;
Matrix mat(*this);//copy ctor
for (int i=0;i<row;i++)
for (int j=0;j<col;j++)
mat.matrix[i][j]=-matrix[i][j];
return mat;
}
Ich habe versucht, viele Permutationen, dass (Hinzufügen const, durch Verweis hinzufügen) und nichts scheint zu funktionieren. Wie behebe ich das?
Die Implementierung und Verwendung – imreal
Jede Verwendung des Minus-Operator helfen würde, löst die Segmentierungsfehler, und es gelangt nicht einmal die Funktion (versucht, etwas zu cout). Ich werde es unabhängig schreiben –
Sie müssen den echten Code setzen, diese Methode hat nicht einmal Parameter und wenn sie nicht die Funktion eingeben, setzen Sie die Call-Site. – imreal