Von Arrays, Klassen und deren Konstruktoren.
-
So. Ich bin wahrscheinlich ein wenig eingerostet mit meinem C++-Wissen... Es geht darum, in einem Array aus Objekten einer bestimmten Klasse auf den Konstruktor oder eine Funktion eines Elements zuzugreifen. Ein Beispiel:
class KLASSE { public: KLASSE() { ... } KLASSE(char* text, int i) { ... } ... }; KLASSE test("string",0); // kein problem... KLASSE array[3]; KLASSE array[0]("noch ein string", 0); // geht natürlich nichtNur als Beispiel. Also wie müsste man die letzte Zeile korrekt schreiben? Beziehungsweise kann man gleich alle Array-Elemente auf einmal direkt richtig initialisieren?
-
KLASSE array[3] = {("string", 0), ("noch ein string", 0), ("blubb", 0)}
-
oder
KLASSE array[3]; array[0] = KLASSE("noch ein string", 0);
-
...aber
KLASSE array[3]; // 1 Default-Konstruktor Aufruf pro Array Element array[0] = KLASSE("noch ein string", 0); // 1 Konstruktor Aufruf pro Element zusätzlich= 2 Konstruktor Aufrufe pro Array Element => Langsamer.
Außerdem ist es imho nicht wirklich schöner Stil den Konstruktor explizit aufzurufen, weil dadurch sehr leicht Fehler entstehen können.
-
Okay... Damit wäre meine Frage wohl beantwortet.
Vielen Dank nochmal