Initialisierungsliste mit arrays
-
Hallo
Kann mir jemand sagen, ob folgender Code irgendwie umsetzbar ist?
class C_Card { public: const int card[2]; C_Card(int worth, int kind) : card[0](worth), card[1](kind) { // Fehler: ( oder { erwartet, [ gefunden // ... } };
Natürlich könnte ich die Zuweisung auf in der Funktion machen, aber es sollte ja analog zu diesem Code
class Klasse { int& r; int const c; public: Klasse(int i) : r(i), c(i){ // ... } };
auch möglich sein das ganze mit arrays umzusetzen!?
Besten Dank und Gruss
-
Nein, Arrays kannst du (leider) nicht direkt so initialisieren - da mußt du dich vermutlich sehr stark verknoten, um das hinzubekommen (wenn es überhaupt möglich ist).
PS: Was macht es in deinem Beispielcode überhaupt für einen Sinn, Wert und Farbe einer Spielkarte zu einem Array zu kombinieren?
-
Kann man nicht sowas in der Art machen?
klasse::klasse () : &array++(0), &array++(1) {};
-
Hallo
Besten Dank für eure Antworten!
PS: Was macht es in deinem Beispielcode überhaupt für einen Sinn, Wert und Farbe einer Spielkarte zu einem Array zu kombinieren?
Gute Frage... Natürlich habe ich dann als (bessere) alternative 2 Variablen in die Klasse gesetzt.
Es ist so, dass ich momentan mein vor ca. 6 Jahren angeeignetes C++ wieder am auffrischen bin und darum mal verschiedene Möglichkeiten ausprobiert habe. Die Frage ist auch rein hypothetischer Natur, da ich der Meinung war, dass C++ zu allem in der Lage ist... Nee, aber ich dachte mir, dass es irgendwie möglich sein wird, da einem C++ ja sehr viele verschiedene Wege zur Verfügung stellt um ein Problem zu lösen. Und da die Initialisierung per Initialisierungsliste ja angeblich schneller abläuft als das Gleiche mit der Konstruktorenfunktion wollte ich das zuerst so umsetzen.
Die Tatsache dass ich in dem Beispiel ein Array verwende hängt damit zusammen dass ich zuvor das Ganze ohne Objekte gemacht habe und da ein Array x[Spieler][Karte][Wert oder Art] erstellt hatte.
Wie auch immer, glaube ich werde diesen Rückschlag überstehenKann man nicht sowas in der Art machen?
Code:
klasse::klasse () : &array++(0), &array++(1) {};Scheint leider nicht zu funktionieren, dev-c++ zumindest gibt da einen Fehler aus... Danke trozdem!
Nochmals besten Dank und liebe Grüsse