Guten Tag,
Als Programmier - und Forumsnewbie bitte ich jegliche Form- und andere Fehler zu entschuldigen.
Ich programmiere mit Suselinux ein C++ Programm und möchte eine Klasse basteln, die als privates Datenelement einen Array einer anderen Klasse hat. In dieser Form klappt es wunderbar, keine Probleme:
Ich möchte nun aber die Größe des Arrays allgemeiner deklarieren: also die rote 1 im Code durch eine Variable (k) ersetzen, die ich während des Programmablaufs festlegen möchte. Aber der Compiler gibt unter anderem folgende Fehlermeldung aus:
error: ISO C++ forbids initialization of member ‘k’
error: making ‘k’ static
error: ISO C++ forbids in-class initialization of non-const static member ‘k’
error: array bound is not an integer constant
Wie könnte ich mein Programm richtig realisieren? Wo muß ich diese Variable deklarieren?
Offenbar paßt es dem Compiler nicht, daß ich eine allgemeine Variable für die Größe des Arrays setze. Aber in einfacheren Programmen kann man durchaus die Größe eines Arrays in einer Variable ausdrücken. Was mach ich falsch?
Vielen Dank im Voraus für Eure Hilfe
Als Programmier - und Forumsnewbie bitte ich jegliche Form- und andere Fehler zu entschuldigen.
Ich programmiere mit Suselinux ein C++ Programm und möchte eine Klasse basteln, die als privates Datenelement einen Array einer anderen Klasse hat. In dieser Form klappt es wunderbar, keine Probleme:
Code:
class Haar
{
public:
Haar() {itsLength = 3;}
~Haar() {}
int GetLength() const {return itsLength;}
void SetLength (int length) {itsLength = length;}
private:
int itsLength;
};
class Cat
{
public:
Cat() {SetNiesen();}
~Cat() {}
int GetNiesen() const {return itsNiesen;}
void SetNiesen () {itsNiesen = itsHaar[0].GetLength() * 2;}
Haar GetHaar () const {return itsHaar[0];}
void SetHaar(Haar Farbe) {itsHaar[0] = Farbe;}
private:
int itsNiesen;
Haar itsHaar[1];
};
error: ISO C++ forbids initialization of member ‘k’
error: making ‘k’ static
error: ISO C++ forbids in-class initialization of non-const static member ‘k’
error: array bound is not an integer constant
Wie könnte ich mein Programm richtig realisieren? Wo muß ich diese Variable deklarieren?
Offenbar paßt es dem Compiler nicht, daß ich eine allgemeine Variable für die Größe des Arrays setze. Aber in einfacheren Programmen kann man durchaus die Größe eines Arrays in einer Variable ausdrücken. Was mach ich falsch?
Vielen Dank im Voraus für Eure Hilfe