Kurze (hopefully non-FAQ) Frage zum Thema Referenzen, Zeiger etc...
-
Ich habe mal eine kurze Frage, denn ich stehe grad arg auf dem Schlauch
Ich habe folgendes (Teil-)Programm....
in der main:
Stein st(5, 0); Stein* pst = &st; stackA.direktSteinHinzufuegen(pst);
..ich lege einen stein an und will ihn mit meiner funktion direktSte.. der
Stack klasse auf einen stack packen...per referenzin der stack-klasse:
void Stack::direktSteinHinzufuegen(Stein* stein) { this->steine[3] = stein; }
und die referenz darauf soll er in die klassenvariable steine[] eintragen..
aber ich erhalte immer:compilerfehler:
In file included from main.cc:3: Stack.cc: In member function `void Stack::direktSteinHinzufuegen(Stein*)': Stack.cc:38: error: no match for 'operator=' in 'this->Stack::steine[3] = stein ' Stein.h:4: error: candidates are: Stein& Stein::operator=(const Stein&)
...was mache ich falsch????
-
Welcher Typ hat Stack::steine[] ?
-
Vom Typ Stein.
hat sich aber schon erledigt..soll ich auflösen oder wollt ihr "findet den fehler" spielen?
...ich sag schon direkt: is nur ne kleinigkeit, ICH OCHSE!!!!
-
Dann muss es natürlich in der Methode *stein heißen. Du könntest auch ein Stein const& übergeben, das wäre doch etwas einfacher.
-
void Stack::direktSteinHinzufuegen(Stein const &stein)
-
Haste das nun von mir abgelesen?
Ich war schneller
-
FireFlow hat gewonnen
...herzlichen Glückwunsch!
-
...uuups! sollte eigentlich n daumen hoch werden aber ich kann nicht editieren.
also nochmal: