Sinn einer Klasse



  • Hallo

    Eigenrlich komm ich mit den Grundsachen von Klassen ganz gut zurechet aber!!!damit ich die Klassen entgültig verstehen kann muss ich wissn wiso man eine Klasse übehaupt verwendet????

    mfg Kevin



  • sie können z.b deinen quellcode extrem viel kürzer machen (!können)
    sie sind für die datenkapselung gedacht.
    und und und und es gibt genügend sehr gute gründe klassen zu verwenden ^^
    beispiel:

    bsp:
    du sollst ein lagerhaus programmieren. ok das haste gemacht. ohne klassen. jetzt will dein boss aber von dir dass sie 2 stück brauchen.

    hättest du das jetzt mit klassen gemacht könntest du einfach

    int main()
    {
        CLagerhaus lagerhaus1;
        CLagerhaus lagerhaus2;
        return 0;
    }
    

    und ohne müsstest du drumrum coden, sodass diesselben funktionen aussehen als würden sie 2 lagerhäuser handeln



  • Naja, den Quelltext kürzer zu machen ist aber nicht der Hauptgedanke hinter Klassen, sondern ein netter Nebeneffekt.
    Dazu gibts in der FAQ auch was: http://www.c-plusplus.net/forum/viewtopic-var-t-is-39459.html

    PS: @metallicakeke: EIN Ausrufezeichen und EIN Fragezeichen reichen vollkommen aus. 🙄



  • ein klasse kan man sich vorstellen wie eine Box
    man kann reinschauen und sachen raus nehmen und rein tuhen
    aber man kann die box nicht verbiegen^^
    also du kanst klassen nicht zur lauf zeit erweitern das geht nur in java oder c#!
    darum must du in C++ vorher wisen welche Datten zu brauchst



  • es gibt keinen zwingenden grund, klassen zu verwenden. es lassen sich auch alle bekannten probleme ohne klassen lösen.

    klassen verkürzen den code aber häufig und machen ihn besser lesbar.



  • Also dann ist der Sinn der Klasse darin Tipparbeit zu sparen und sowas wie einen neute Typ zu erstellen also wie ein Int eine Typ ist dann auch ein Haus Typ machen?

    @-preperator-
    OK 🤡 !

    mfg Kevin



  • Hi!

    Naja, das du die viel arbeit sparst ist ein Nebeneffekt. Objekt Orientierte Programmierung macht es dir vorallem Möglich Daten/Methoden in Objekten zu kapseln. Das hat den Vorteil, das du diverse Objekte hast die GENAU die Funktion bieten welche sie bieten sollen und keine andere.

    z.B.

    class Tree
    {
      void werfeBlaetterRunter();
      // void faelleSichSelbst() <- wieso sollt ein Baum sich selbst faellen?
    }
    
    class Gaertner
    {
      void faelleBaum( const Tree &blubb );
    }
    

    Und genau so bekommst du eine ansammlung von Objekten die logisch ihre Funktionen anbieten. Im Prinzip versucht man damit die Welt nachzubilden, wobei das nicht wirklich korrekt möglich ist, aber annhäherungsweise.

    Okay, das ist aber noch lang nicht alles. Desweiteren kann man Klassen voneinander Erben lassen.

    class Vogel
    {
      // Enthält alle Methoden/... die jeder Vogel besitzt
      void sucheEssen();
      void gibLaut() = 0;
    }
    
    class Amsel : public Vogel
    {
      void gibLaut()
      {
        std::cout << "Zwitscher\n";
      }
    }
    
    class Kraehe : public Vogel
    {
      void gibLaut()
      {
        std::cout << "Kraechts\n";
      }
    }
    

    Wenn du deine Klassen gut designst bekommst du einen ultra logischen Quellcode, der super zu lesen ist UND vorallem sicher ist.
    Ein gutes Klassendesign macht deinen Code sicher, bei Prozeduraler oder Spagetticode Programmierung ist die Gefahr viel höher das du schlechten/fehleranfälligen Quellcode produzierst.

    So, das sind aber nur wenige der vieeelen Möglichkeiten die sich dir mit Klassen ... ermöglichen. Ich rate dir mal ein gutes Buch über Objektorientierte Programmierung zu lesen. Dann wird dir bestimmt klar warum es Klassen gibt und was für Vorteile sie bieten.

    grüße

    P.S.: Achtung !Codes waren pseudocodes!



  • Benutz sie einfach. Und wenn du es mal richtig kannst, wirst du merken, dass es viel besser ist.



  • Ok Danke schonmal an alle jetzt bin ich weider n stück weiter gekommen!

    mfg Kevin


Anmelden zum Antworten