Felder initialisieren in einer Klasse
-
Hallo,
Ich möchte ein Integer Array meiner Klasse mit Werten initialisieren.
zB so:
class CTest
{
int a[] = {1,2,3,4,12};
};Wieso funktioniert das innerhalb einer Klasse nicht? Was muss ich anders machen damit ich das gleiche Ergebnis bekomme?
Vielen Dank für die Hilfe !
-
Innerhalb eine Klasse gehören nur Deklarationen, keine Definition.
Wenn du wirklich eine konstante in deiner klasse definieren willst, so hast du 2 möglichkeiten:1. Im Konstruktor initialisieren -> also im Konstruktor a mit deinem array vollschreiben. a musst du zuvor mit index 5 deklariert haben.
2. der enum-hack
einfach enum a {x=1, y=2 ... usw}greetz
chris90
-
Mein erster Versuch war es, das Array im Konstriktor zu füllen. Leider hat es nicht geklappt. ->ERROR Meldungen.
Hab folgendes versucht:
im Header:
int a[5];CPP (im Konstruktor):
a[] = {1,2,3,4,5};Hat so nicht funktioniert. Wo liegt mein Denkfehler ??
-
Du kannst das Array so nicht im Konstruktor initialisieren, möglich wäre:
struct Foo { Foo() { for( int i = 0; i < 5; ++i ) a[ i ] = i+1; } int a[5]; };