Klasse für Algorithmus

Hallo zusammen,

ich habe vor paar Tagen schon mal eine Frage gestellt, nur leider habe ich dazu keine hilfreiche Antwort bekommen. Da ich aber immer noch weitergekommen bin, wollte ich mein Glück noch einmal versuchen.

Ich möchte ein Programm programmieren, dass ein Lösungssystem A*x=b mit dem GaussVerfahren löst. Ich habe dazu eine Klasse Matrix und eine Klasse Vektor implementiert.

Nun möchte ich noch eine Klasse für den Algorithmus selbst haben, die Klassen Variablen sollen eine Matrix A und ein Vektor b sein.
Nun liegt mein Problem im Konstruktor. Ich möchte eine schon bestehende Matrix A und eine schon bestehende Matrix b übergeben und sonst A und b konstruieren. Nur weiß ich leider nicht, wie ich das mache. Habe unter anderem versucht die Pointer und die Referenz zu übergeben, das funktioniert aber nicht.

Kann mir da jemand helfen?Wäre euch sehr dankbar :smile:

Viele Grüße
Amelie

Hi Amelie,

ich habe vor paar Tagen schon mal eine Frage gestellt, nur

hier in diesem Forum und in diesem Brett?

Nun liegt mein Problem im Konstruktor. Ich möchte eine schon
bestehende Matrix A und eine schon bestehende Matrix b
übergeben und sonst A und b konstruieren. Nur weiß ich leider
nicht, wie ich das mache. Habe unter anderem versucht die
Pointer und die Referenz zu übergeben, das funktioniert aber
nicht.

Nun, idR würde dann der erste Konstruktor wie folgt aussehen

Algorithmus(const Vektor& v, const Matrix& b)


> m\_v(v)

, m\_b(b)
{
}

wobei m_v und m_b deine Instanzvariablen vom zugehörigen Typ sind, also

Vektor m\_v;
Matrix m\_b;

Deine Klassen Vektor und Matrix sollten kopierbar sein, also entweder einen impliziten oder einen explizit ausprogrammierten Copyconstructor enthalten.

Wenn das nicht helfen sollte, solltest du hier deinen Code und etwaige Fehlermeldungen posten, so dass wir hier helfen können.

Gruss
K.

PS Es gibt natürlich auch Lösungen, in denen m_v und m_b Referenzen (in diesem Fall const&amp:wink: oder Pointer sind. Von denen ist aber - insbesondere Anfängern der Programmierung - erstmal abzuraten.

Hallo,

vielen Dank für deine Antwort!!!
Ich hab jetzt jeweils einen Copycontructor für Matrix und Vektor geschrieben und jetzt scheint es so auch zu gehen.
Nun wollte ich die Konstruktor für den Algorithmus in der main aufrufen, das Programm läuft auch, aber endlos…

Ich habe es mit

Algorithmus L (M,v);

aufgerufen, wobei M eine 3x3 Matrix mit Einträgen ist und v ein Vektor der Größe 3.

An was könnte das liegen?

Ich bin noch ziemlich unerfahren mit objektorientierter Programmierung.

Viele Grüße
Amelie

P.S. Die Frage wurde scheinbar vor 2 Tagen nur an Experten versendet.

Hab den Fehler gerade gefunden…

Vielenvielen Dank! Es funktioniert nun soweit!