ich habe schon einige erfolgreiche Arduino-Projekte hinter mir und möchte mich nun an ein Projekt ranwagen, welches ich von Anfang sehr skalierbar und klar programmiert aufziehen möchte.
Bzgl. der Programmierung soll es einen Teil geben, über den eine zum Systemstart noch nicht definierte Menge an Objekten mit jeweils identischen Eigenschaften und Funktionen erstellt werden kann. Einfach gesprochen sollen diese Objekte Werte entgegennehmen, mit ihnen arbeiten, oder auch Berechnungen ausführen können.
Von der Art und Weise ist das, was ich machen möchte (aus meiner Sicht momentan) genau das, was ich in einem Kapitel eines Buches las, in dem es eben um objektorientierte Programmierung ging.
In einem älteren Thread las ich, dass man bzgl. der Arduino-Plattform von einer objektorientierten Programmierung jedoch besser Abstand nehmen sollte. Was wäre denn die Alternative hierzu? Lange for-Schleifen-Konstrukte?
Chris72622:
Von der Art und Weise ist das, was ich machen möchte (aus meiner Sicht momentan) genau das, was ich in einem Kapitel eines Buches las, in dem es eben um objektorientierte Programmierung ging.
Dann mache es doch in OOP! Im Thema Wieder bewässerung habe ich OOP auf einem UNO realisiert. Sieht zumindest für mich ganz gut aus. Daher wüste ich nicht, warum man OOP grundsätzlich für einen Arduino ausschließen sollte. Daß Du Dich mit einem an Resourcen armen Prozessor beschäftigst, ist Dir sicherlich bewußt.
Bei dir ist das Problem eher dass man für sowas normal dynamischen Speicher verwendet. Das kann Schwierigkeiten bereiten. Was eventuell geht ist dass man die Objekte einmal erstellt und nicht löscht.
Wenn eine maximale Anzahl an Objekten bekannt ist kann man auch einfach ein Array nehmen und sich merken wie viele Objekte tatsächlich existieren
Nicht wirklich aber mal ein Versuch: b ist eine Referenz vom Typ Blumen, die alle Elemente vom Feld blumen durchgeht, um die Methode init aufzurufen. Dadurch überläßt man die Berechnung der Elementeanzahl dem Compiler.
Ich bin OOP-Anfänger und habe das von combie übernommen, der Deine Frage sicherlich besser beantworten kann :-[
Allgemein nennt sich das "for each". Gibt es in C++ "erst" seit C++11, daher sieht man das in Standard Tutorials nicht oft. Ist aber bei Arrays wesentlich besser als eine normale for-Schleife, da man weniger Fehler machen kann