OOP für Anfänger - Einstieg mit nachvollziehbarer Erklärung

combie:
Ich verstehe deine Frage nicht!

Schade, aber ich starte nochmal einen Versuch.

Es geht ja um die Frage, was mich zum Umstieg auf OOP motivieren könnte. Wenn ich die letzten Beiträge richtig verstehe, dann ist die Kapselung ein wichtiges Argument. Also vergleiche ich mit der prozeduralen Funktion:

b = meineFunktion(a);

Meiner Funktion wird eine Kopie des Objekts a übergeben, die Funktion macht was damit und das Ergebnis kann ein Objekt b sein. Ich habe die Funktion getestet, danach kann ich ihren Inhalt vergessen, gerade so, wie Du es bei der Klasse beschrieben hast. Die Funktion ist gekapselt.

Ich kann diesbezüglich keinen Vorteil der Klasse gegenüber einer Funktion erkennen.

Wer nun mit Taschenspielertricks wie Zeigern daherkommt, der nutzt auch struct ohne private. Das kann nützlich sein, widerspricht aber dem Grundgedanken.

Was in #55 steht, weckt zwar einerseits meinen Widerspruch, führt mich aber andererseits auf den möglichen Kern: Wenn ich eine Funktion mehrfach aufrufe, muß eine statische Variable ein Feld sein, weshalb das übergebene Objekt auch einen Index enthalten muß. Diesen Index muß ich selbst pflegen.

Demgegenüber brauche ich mich um die Verwaltung der Instanzen einer Klasse nicht zu kümmern. Beispiel:

Blumen blumen[]  // Ein Feld der Struktur Blumen
{ // messPin, relaisPin, trockenWert, messIntervall, giessIntervall, nachgiessenIntervall
  {A1, 2, 200, 3000, 500, 5000},  // Werte für Blume und Pumpe 1
  {A2, 3, 250, 2500, 500, 5000}   // Werte für Blume und Pumpe 2
};

Ergänze ich hier eine Zeile, habe ich eine Blume mehr. Da freut sich meine Faulheit.

Konnte ich verdeutlichen, um was es mir geht?

Der Blick in Deine Wühlkiste ist durchaus amüsant und in anderem Zusammenhang möglicherweise auch hilfreich, aber bezogen auf dieses Thema doch eher ein Spaß, oder? Probiert habe ich es dennoch :slight_smile: