Objektorientierte Programmierung II



  • Guten Morgen :p

    Noch immer am lernen und manchmal versteh ich´s so nicht... und wenn ich´s nicht versteh, dann heißt es für mich: "Nicht weiterlesen, bevor das nicht geklärt ist!"

    Ich sitze nun da, google wie verrückt und finde nur Bruchstücke von der eigentlichen Antwort, die mir das VERSTEHEN gibt.

    Ich sollte eigentlich schon im Bett liegen, aber ich habe mir vorgenommen C++ in den Sommerferien zu lernen und natürlich dann große Projekte damit programmieren.

    So, wirr warr, wo ist denn nun die Frage?

    Ich hab da ein Kapitel im Buch und lese es schon zum x. Mal:

    Was ist jetzt genau die Objektorientierte Programmierung?

    Das was ich jetzt verstanden habe:

    -) Sie ist ein Programmierstil

    Gut, aber wie schreib ich den Stil?

    Was ist ein Objekt (Object) ? Ein Datentyp? oO

    In meinem alten Thread hab ich erwähnt, dass Klassen == struct´s sind...stimmt das?

    Ich habe in VB.Net die Objektorientierte Programmierung bzw. den Programmierstil nie angewendet. (Weil ich eben nicht wusste, was das ist.)

    Tut mir echt Leid, für die die mir helfen wollen und sich das alles lesen müssen. Doch ich reg mich auf.

    Ich hoffe ihr könnt mir helfen 😞

    P.S.: Die Fragen sind fett!

    Lg Mentras



  • Hier steht alles was du wissen musst.

    http://openbook.galileocomputing.de/oop/



  • Die Idee der OOP ist sehr gut auf
    http://de.wikipedia.org/wiki/Objektorientierte_Programmierung
    beschrieben.
    Letztlich geht es einfach darum Daten und Funktionen welche mit diesen Daten interagieren möglichst eng in ein Objekt zu kapseln. Unter C++ wäre das eben eine Klasse oder ein struct. AFAIK ist der einzige Unterschied zwischen Klasse und struct in C++ dass in einer Klasse Standardmäßig alles private und im struct alles public ist.

    Ein Beispiel für OOP wäre z.B. eine Bild Klasse die "sich selbst bearbeiten kann".

    class Bild
    {
        private:
        std::vector<int> daten;
    
        public:
        void graustufen();
        void filterA();
        void filterB();
    };
    

    Die Klasse wird einmalig mit Daten initialisiert und danach ruft man praktisch nurnoch die Methoden der Klasse auf um die Daten zu bearbeiten ohne mit den Daten selbst hantieren zu müssen.

    Prozedural wäre das obige Beispiel so:

    std::vector<int> daten;
    
    class Bildbearbeitung
    {
        public:
        void graustufen(std::vector<int> bild);
        void filterA(std::vector<int> bild);
        void filterB(std::vector<int> bild);
    };
    

    Man müsste den Methoden jedes mal das Bild als Parameter übergeben.



  • Danke blub² 🙂

    So langsam hab ich´s begriffen.

    Jetzt fehlt noch die letzte Frage:

    Was ist ein Objekt?

    Darf ich das wörtlich übersetzen: Auto, Bild, Computer, Form,...?

    Oder ist damit was ganz anderes gemeint?

    LG Mentras



  • Ein Objekt ist genaugesagt eine Instanz einer Klasse.

    class MeineKlasse
    {
        ;
    };
    
    MeineKlasse klassenObjekt1, klassenObjekt2;
    


  • Mentras schrieb:

    Was ist ein Objekt?

    Darf ich das wörtlich übersetzen: Auto, Bild, Computer, Form,...?

    Oder ist damit was ganz anderes gemeint?

    Hallo Mentras,

    Klasse: Autos
    Objekt: ein Auto

    class Auto{ /* diese Autos werden farblich unterschieden */ };
    
    rotesAuto = new Auto("rot"); // rotesAuto ist ein Objekt der Klasse Auto
    
    delete rotesAuto; // jetzt wird das Objekt wieder zerstört
    


  • Roger Wilco schrieb:

    class Autos{ /* diese Autos werden farblich unterschieden */ };
    
    rotesAuto = new Auto("rot"); // rotesAuto ist ein Objekt der Klasse Autos
    
    delete rotesAuto; // jetzt wird das Objekt wieder zerstört
    

    Oder um den Abstand ein wenig zu wahren:

    class Autos{ /* diese Autos werden farblich unterschieden */ };
    
    Auto rotesAuto("rot"); // rotesAuto ist ein Objekt der Klasse Autos
    


  • Da hast Du recht.

    Außerdem muss es class Auto heißen und nicht class Autos. Dann wird ein Schuh draus.



  • Mentras schrieb:

    Was ist jetzt genau die Objektorientierte Programmierung?

    Die Frage "was genau..." stellen sich viele Experten und Wissenschaftler. Eine einheitliche Definition gibts afaik nicht. Je nachdem welche Definition man anwendet (d.h. welchen Experten/Wissenschaftler man fragt), ist z.B. C++ eine "unter anderem objektorientierte", "teilweise objektorientierte", "pseudo-objektorientierte" Sprache.



  • Ahh, okay.

    Langsam Langsam, begreife ich´s.
    Werde dann mal ein paar Übungen machen um den Dreh rauszubekommen.

    Vielen Dank für die Beispiele!

    Die ist für euch 🙂

    http://www.fleurop.de/Images/Product_Images/xichliebe_l.jpg

    Lg Mentras



  • http://www.c-plusplus.net/forum/viewtopic-var-t-is-239586.html Hier steht drinnen was es wirklich heißt 👍

    MfG SideWinder




Anmelden zum Antworten