Fuktion eines variablen Objektes auserhalb der Klasse aufrufen?



  • Wie ein Zeiger funktioniert solltest du schon wissen..

    class player
    {
      village* current_village_;
    public:
      void switch_village(village& to)
      {
        current_village_ = &to;
      }
      void foo()
      {
        if (current_village_ != nullptr) // Auf nullptr testen, falls es diesen Zustand gibt. Ansonsten vll assert/exception.
        {
          (*current_village_).foo();
          current_village_->bar(); // Der -> Operator ist hier lieber gesehen.
        }
      }
    };
    


  • sorry, wenn ich nerve, aber wie kann ich ein Objekt von dem Dorf in der Spielerklasse erzeugen, wenn die Dorf von der Spieler abgeleitet ist? Der Compiler meckert über dadrüber... (Nicht vorhanden...)



  • wtf... jetzt nimmt er es an. Auf einmal o.O

    Danke für die Hilfe! 🙂



  • iGelb schrieb:

    sorry, wenn ich nerve, aber wie kann ich ein Objekt von dem Dorf in der Spielerklasse erzeugen, wenn die Dorf von der Spieler abgeleitet ist?

    Dorf ist von Spieler abgeleitet? 😮
    Das berüchtigte Superwurstbrot des Todes hat wohl abermals zugeschlagen.



  • iGelb schrieb:

    wie kann ich ein Objekt von dem Dorf in der Spielerklasse erzeugen, wenn die Dorf von der Spieler abgeleitet ist? Der Compiler meckert über dadrüber... (Nicht vorhanden...)

    Dorf ist von Spieler abgeleitet? Wieso?



  • Nein, ich habe C++ von A bis Z nicht gelesen.
    Hab gerade selber festgestellt dass das keinen Sinn macht.^^



  • iGelb schrieb:

    Hab gerade selber festgestellt dass das keinen Sinn macht.^^

    Und wieso macht es keinen Sinn?



  • Da Dorf eig. nichts von Spieler erben braucht...



  • iGelb schrieb:

    Da Dorf eig. nichts von Spieler erben braucht...

    Mit dieser Aussage muss ich leider annehmen, dass du Vererbung nicht verstanden hast. Sie bedeutet nämlich "is-a"-Beziehung. Das bedeutet, überall wo ein Foo erwartet wird, kannst du ein Bar reinstecken, weil Bar auch ein Foo ist. Ein Dorf ist kein Spieler, und damit ist Vererbung ausgeschlossen.

    class Foo {};
    class Bar : public Foo {};
    


  • Hä?

    Ich hab Vererbung schon verstanden! (Glaub ich zumindest!)
    Ich mein nur, Dorf muss nichts von Spieler erben, da sie keine gemeinsamen Member besitzen.


Anmelden zum Antworten