ich hab da ein c++ problehm !



  • es geht um classen vererbung !

    wie funktioniert das !

    hab kein c++ buch zur hant.

    bye, lila 🙄



  • ... ach gibts auch lila Trolls?



  • Hi,

    ganz kurz und knapp aber bestimmt nicht ganz vollstaendig:

    Du hast eine Klasse Fahrzeug:

    class Fahrzeug
    {
        private:
               int   m_AnzahlRaeder;
               int   m_AnzahlTueren;
        public:
               //jede mengen methoden...
    };
    

    Nun ist das die Basisklasse, welche dir allgemeine Eigenschaften zur
    Verfuegung stellt. Jetzt machst du dir ne Klasse BMW, leitest diese
    von Fahrzeug ab (damit du allgemeinen Eigenschaften hast) und ergaenzt
    diese Klasse um BMW-spezifischen Eigenschaften.

    Das koennte vielleicht so aussehen:

    class BMW : public Fahrzeug
    {
        private:
               bool   m_BesitztKlimaanlage;
               //und was es noch so gibt...
        public:
               //hier wieder jedemenge methoden...
    };
    

    So, jetzt solltest du in google nochmal nach Vererbung suchen und es dir
    nochmal in Ruhe durchlesen.

    Schau dir am besten mal das Tutorial von volkard und Shade an (zu finden
    unter dem "Tutorial"-Link auf der Startseite.

    Hoffe ich hab nichts falsch gemacht

    mfg
    v R

    [ Dieser Beitrag wurde am 30.05.2003 um 14:42 Uhr von virtuell Realisticer editiert. ]





  • Original erstellt von <Lilahexchen>:
    **es geht um classen vererbung !

    wie funktioniert das !

    hab kein c++ buch zur hant.

    bye, lila 🙄**

    Aha, wie wärs wenn du uns mal dein Problem schilderst?



  • Also Vererbung bedeutet nichts weiter, als dass sich die Klasse, die etwas erben soll, sich die Daten von einer anderen Klasse holt. Z.B. die, die aus public kommen. Beispiel:

    class Geber
    {
       public:
          // Hier steht alles das, was "veroefentlicht" werden soll / kann
       private:
          // Hier steht alles das, was nicht "veroeffentlicht" werden soll / kann
    }
    class Krieger : public Geber /* Fuegt alles, was in public von Geber steht in public von Krieger ein */
    {
       public:
          /* Hier koennen noch weitere Anweisungen stehen, die neben der Vererbung stehen sollen. */
       private:
          // Und hier wieder das, was privat bleiben soll.
    }
    

    So hab ich's jedenfalls mal gehört 😃

    [ Dieser Beitrag wurde am 30.05.2003 um 23:26 Uhr von Spieleprogrammierer editiert. ]



  • ein absolut schwachsinniges beispiel , du möchtegern-progger ! 😡



  • wieso schwachsinnig? Hab ich da jetz gesagt, dass es einen Sinn machen sollte? Also ich wollts nur mal etwas einfacher vom Ausdruck her erklären, aber nagut, wenn du meinst, dass es "Schwachsinnig ist"...

    Ist schließlig deine Meinung



  • wenn du eine klasse "Krieger" von "Geber" ableitest , ist das schwachsinn ! und es zeigt , daß du die vererbung nicht kapiert hast !
    man kann "Dackel" von "Hund" ableiten und "Hund" von "Tier" aber wenn du "Krieger" von "Geber" ableitest , dann ist das so , als würdest du "EinPaketButter" von "Joystick" ableiten !



  • oder als würdest du "Hund" von "Katze" ableiten !



  • Was ist ein geber?=



  • jemand der gibt



  • Es war ja nur ein Beispiel von Ihm. 🙂



  • Krieger ist kein Geber

    (nicht jeder der bekommt gibt auch)

    deshalb ist zeigt dieses Beispiel nicht was vererbung auszeichnet.

    volkards Beispiel (siehe Post von MaSTaH) ist viel besser



  • @Spieleprogrammierer: wie wärs, wenn du aus deinem geber einen menschen machst?? dann würde das sogar hinhauen. (es sei denn, krieger sind bei dir orks und sowas 🙂

    cu todo



  • Ähm... mit Krieger meinte er doch sowas wie "der, der etwas kriegt"



  • na dann wäre mir der zusammenhang was vererbung angeht erst recht nicht klar. die beiden wären ja genau das gegenteil. die beiden könnten höchstens von der gleichen übergeordeten klasse erben, aber davon war ja keine rede.

    cut todo



  • Original erstellt von <GAAADA>:
    dann ist das so , als würdest du "EinPaketButter" von "Joystick" ableiten !

    😃 😃 Das ist ein guter Vergleich.

    Jetzt aber zum Thema. Die public-Vererbung stellt eine "ist-ein" Beziehung dar. Das heisst, dass du einen Hund von Tier ableiten kannst -> Hund ist ein Tier. Einen Dackel kannst du vom Hund ableiten -> Dackel ist ein Hund und dieser wiederum ist ein Tier. Durch diese Beziehungen kann man ganze Ableitungshierarchien erstellen.

    Wie mann vererbt haben ja schon paar Poster vor mit gezeigt und mit einigen mehr oder weniger brauchbaren Beispielen veranschaulicht.

    Ich empfehle dir mal das Buch "C++ in 21 Tagen". Die kostenlose Inet Version [url] http://www.informit.de/books/c++21/data/start.htm [/url]. Da wird die Vererbung sehr gut erklärt.

    Gruß KravenZ

    [ Dieser Beitrag wurde am 31.05.2003 um 14:26 Uhr von KravenZ editiert. ]



  • Hallo!
    Vererbung nutzt man, um sinnvolle Verbindungen und Beziehungen in seinem Programm herzustellen und somit ein Stück weit die Realität zu repräsentieren.

    Beispiel:

    class Mammal           //Basisklasse
    {
    public:
      void Atmen() { /* Code */ }
    };
    
    class Dog : public Mammal  //abgeleitete Klasse
    {
     /* usw */
    }; 
    //Hunde atmen ja auch irgendwie...
    

    Nicht einmal abgeleitete Klassen können private Elemente einer Basisklasse nutzen, daher solltest du in einem solche Fall anstatt "public" "protected" wählen (geschützt).

    Dann gibt es noch virtuelle Vererbung und Mehrfachvererbung usw.
    Das Schlüsselwort "virtual" sagt hierbei nichts anderes als »kann in einer abgeleiteten Klasse überschrieben werden«.

    cu
    BodPa



  • virtual hat eine viel grössere bedeutung.
    Überschreiben kannst du auch so ohne virtual.

    [ Dieser Beitrag wurde am 31.05.2003 um 16:07 Uhr von KravenZ editiert. ]


Anmelden zum Antworten