Objektorientierte Programmierung II
-
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 Autoclass 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örtOder 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
-