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 referenz

    in 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:
    👍


Log in to reply