array in klasse deklarieren und initialisieren
-
ich möchte folgende Definition in meiner Form-Klasse deklarieren und wollte sie im Konstruktor initialisieren:
TColor cSeries[]={clBlack,clRed,clLime,clBlue,clFuchsia,clAqua,clSilver, clNavy,clMaroon,clGreen,clNavy,clPurple};
Wenn ich in der header-datei als private mit TColor cSeries[]; deklarieren will und im Konstruktor mit
cSeries[]={clBlack,clRed,clLime,clBlue,clFuchsia,clAqua,clSilver,
clNavy,clMaroon,clGreen,clNavy,clPurple}; definiere erhalte ich einen Fehler (Ausdruckssyntax).Ich brauch cseries in mehreren Methoden der Forms-Klasse.
-
Dies soll also ein statisches Array sein?
Wenn ja, dann einfach// im Header static TColor cSeries[] = { clBlack,clRed,clLime,clBlue,clFuchsia,clAqua,clSilver, clNavy,clMaroon,clGreen,clNavy,clPurple };
Falls der Compiler dies noch nicht unterstützt, dann
// im Header (innerhalb der Form-Klasse) static TColor cSeries[]; // im Source TColor TFormX::cSeries[] = { clBlack,clRed,clLime,clBlue,clFuchsia,clAqua,clSilver, clNavy,clMaroon,clGreen,clNavy,clPurple };
(evtl. muß innerhalb der eckigen Klammern noch die Anzahl stehen, bin mir gerade nicht sicher)
-
Th69 schrieb:
...
(evtl. muß innerhalb der eckigen Klammern noch die Anzahl stehen, bin mir gerade nicht sicher)Nein, muss nicht.
-
rudpower schrieb:
ich möchte folgende Definition in meiner Form-Klasse deklarieren und wollte sie im Konstruktor initialisieren:
TColor cSeries[]={clBlack,clRed,clLime,clBlue,clFuchsia,clAqua,clSilver, clNavy,clMaroon,clGreen,clNavy,clPurple};
Das wäre identisch zu
TColor cSeries[12]={clBlack,clRed,clLime,clBlue,clFuchsia,clAqua,clSilver, clNavy,clMaroon,clGreen,clNavy,clPurple};
Du musst die Größe explizit angeben, wenn du erst im Konstruktor initialisieren willst. Oder einen Pointer benutzen und im Konstruktor den Speicherplatz reservieren.
-
oenone schrieb:
Du musst die Größe explizit angeben, wenn du erst im Konstruktor initialisieren willst. Oder einen Pointer benutzen und im Konstruktor den Speicherplatz reservieren.
oder wenn die Anzahl der Elemente in der Initialisierungslist kleiner ist als die gewünschte Anzahl (Rest wird default initialisiert).