nachdem ich hier shcon viele wertvolle Tipps durch Mitlesen bekommen habe, habe ich nun ein Projekt, für das ich noch keine Lösuung gefunden habe:
Ich möchte eine Klasse erstellen, die Strings (nicht char) in einem dynamischen Array speichert.
Ich stelle mir dabei folgenden Ablaufg vor:
1.) Die Klasse selbst hält nur einen Pointer auf das Array (ptrItemArray), welcher am Anfang als nullptr gespeichert wird
2.) Die void "begin" wird mit dem Parameter der Anzahl der String-Elemente aufgerufen:
Das Array mit der Anzahl der String-Elemente wird erstellt und der Pointer auf das Array in der o.g. Pointer-Variable (ptrItemArray) gespeichert.
Das Array selbst enthält zu diesem Zeitpunkt nullptr, da die Strings noch nicht angelegt werden sollen.
3.) Durch Aufruf der void "addItem" mit Angabe des Strings, soll das Array gefüllt werden, bis die max. Anzahl der Elemente erreicht ist.
D.h. jetzt wird ein String-Objekt instanziiert und der Pointer auf den String im Array gespeichert.
Über Code-Snipplets hierzu würde ich mich freuen. Wenn ihr bessere Ideen habe, wir man diese Doppel-Pointer (auf das Array, vom Array zu den Strings) vereinfachen könnte, immer her damit.
Ich möchte die Klasse in einer anderen Klasse dynamisch nutzen, also kein Global.
Warum? Ich möchte eine universelle Klasse erstellen, die Objekte mit ihrem Namen in der einer Reihenfolge sortiert. Die Anzahl der Objekte ist dynamisch.
Start: E:\Programme\arduino\portable\sketchbook\sketch_apr24f\sketch_apr24f.ino
Vor der Sortierung:
Apfel
Zitrone
Frosch
-----------
Nach der Sortierung:
Apfel
Frosch
Zitrone
-----------
(getestet auf einem UNO mit libstdc++ Erweiterung)
Die sort() Funktionalität ist nach Belieben anpassbar.
Der Standard Sortieralgorithmus ist hier anwendbar, weil String den > Operator (und weitere) implementiert.
wow, ich bin beeindruckt. Habt vielen Dank für diese wertvollen Tipps. Ich hätte nicht gedacht, dass ich mein Thema so einfach und elegant gelöst bekomme.