soufian88 hat geschrieben:Das Problem was ich aber zurzeit habe ist ob ich eigentlich in C++ Objektorientiert denke denn das Denken von C in C++ Objektorientiert ist ein wenig schwierig.
Das Denken von C funktioniert in C++ nicht.
soufian88 hat geschrieben:Deshalb frage ich was ist eigentlich genau Objektorientierte Programmierung.
In C schreibst Du Deine Prozeduren und Algorithmen und gibst dem Programm Daten, dies verarbeitet.
In C++ gibt es eine andere Perspektive: Du hast Daten und die kannst Du verändern. Dafür klassifizierst Du Deine Daten und ziehst Gemeinsamkeiten zusammen. Die Instanz einer Klasse ist ein Objekt. Ein Hund hat eine Fellfarbe, ein Hirsch auch. Beides sind Tiere. Also hat ein Tier eine Fellfarbe. Aber ein Reh hat einige Besonderheiten, die für ein Tier nicht gelten. Die Geweihgröße ist für einen Hund nicht interessant. Gleichzeitig haben Hund und Hirsche aber auch Gemeinsamkeiten, die sie dennoch unterschiedlich regeln: eine Funktion gibLaut() muss bei einem Hirsch() "Röööhhhöör" (oder sowas in der Art) zurückgeben und bei einem Hund "Wuff". Das ist bis jetzt alles klassenorientiert.
In dem Moment, wo man die Behauptung aufstellt, dass Tiere gibLaut() unterstützen und die zwar für jede Spezialisierung eines Tiers auf unterschiedliche Weise, wird die Sache Objektorientiert.
Du beginnst mit OOP, sobald Du das Schlüsselwort "virtual" verwendest. Dafür musst Du Daten klassifizieren, also klassenorientiert programmieren. Du musst also erst überlegen, welche Daten Du hast und wie Du sie in Klassen unterteilen kannst. Anschließend überlegst Du Dir, was Du mit den machen möchtest und schreibst entsprechende Methoden (so nennt man Funktionen innerhalb von Klassen).
Dabei muss man Klassen gar nicht so eng sehen: eine Klasse kann durchaus auch die Konfigurationsdatei verwalten oder den Programmstatus. Hierbei wäre der Konstruktor alles, was notwendig ist, um das Programm zu starten und der Destruktor alles, was das Programm wieder beendet.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.