Hallo Zusammen,
ich habe diesmal eine Frage, wie ihr so in C++ mit dem Thema umgeht, wenn Collections (vector, list, map) nach außen gegeben werden. Ich gehe in meine Fall davon aus, dass das herausgeben notwendig ist, weil die herauszugebende Liste verarbeitet werden kann (sortieren und iterieren).
Es gibt verschiedene Ansätze, wobei ich mir nicht ganz sicher bin, welcher ein guter Weg ist:
1) Kopie des Vektors herausgeben
2) Referenz des Vektors herausgeben
3) Zeiger auf den Vektor herausgeben
4) Iteratoren für Beginn und Ende des Vektors herausgeben
5) Iterieren in der Klasse durch Methoden verankern, die den Vektor bereitstellt.
Schade finde ich eigentlich, dass es da in C++ keine eigenen Interfaces wie IEnumerable, ICollection oder IList gibt. Dadurch kann man wunderbar nach außen den Funktionsumfang beschränken.
Wie geht ihr damit um und was findet ihr ist gute Praxis? Ich tendiere ja aus Einfachheitsgründen zu Punkt 2.