Hey,...
ich komme von der JAVA Ecke und muss mich im Studium mit C++ "herumschlagen"
.
Ich habe folgendes, wahrscheinlich triviales Problem, komme aber irgendwie nicht weiter:
Ich habe eine Klasse Turm:
Ich würde gerne über den Konstruktor das Array "scheiben" initialisieren, weiß aber nicht wie ich das anstellen soll.
Eine direkte Zuweisung wie zB:
funktioniert ja in C++ nicht, soweit ich das Verstanden habe.
Folgendes habe ich auch schon ausprobiert:
Dies hat aber ziemlich komische Effekte zur Folge. Wenn ich dann nämlich das Objekt folgendermaßen instanziiere:
und anschließend das Array des t1 Objekts ausgebe, scheint alles zu funktionieren.
Wenn ich aber zusätzlich noch ein willkürliches anderes Array anlege, ändern sich die Werte des scheiben Arrays im t1 Objekt:
Letztendlich müsste ich doch auch für das Array in der Klasse Turm eine Größe angeben, wenn ich es im Konstruktor initialiseren möchte, oder?
Wie ist also der Beste Weg, ein Objekt-Attribut vom Typ Array, über ein Konstruktor zu initialisieren?
Ich bin für jede Hilfe dankbar.
Viele grüße
Florian
ich komme von der JAVA Ecke und muss mich im Studium mit C++ "herumschlagen"

Ich habe folgendes, wahrscheinlich triviales Problem, komme aber irgendwie nicht weiter:
Ich habe eine Klasse Turm:
Code:
class Turm {
private:
int hoehe;
int scheiben[];
public:
Turm(int hoehe, int paScheiben[]);
Turm();
virtual ~Turm();
int pop();
void push(int scheibe);
void druck();
int getHoehe();
void setHoehe(int hoehe);
int getScheibe(int index);
};
Ich würde gerne über den Konstruktor das Array "scheiben" initialisieren, weiß aber nicht wie ich das anstellen soll.
Eine direkte Zuweisung wie zB:
Code:
Turm::Turm(int hoehe, int paScheiben[]) {
this->hoehe = hoehe;
this->scheiben = paScheiben;
}
Folgendes habe ich auch schon ausprobiert:
Code:
memcpy(this->scheiben, paScheiben, sizeof (paScheiben));
Code:
int scheiben[4];
scheiben[0] = 4;
scheiben[1] = 3;
scheiben[2] = 2;
scheiben[3] = 1;
Turm t1(4, scheiben);
Wenn ich aber zusätzlich noch ein willkürliches anderes Array anlege, ändern sich die Werte des scheiben Arrays im t1 Objekt:
Code:
int scheiben[4];
scheiben[0] = 4;
scheiben[1] = 3;
scheiben[2] = 2;
scheiben[3] = 1;
int test[3];
Turm t1(4, scheiben);
Letztendlich müsste ich doch auch für das Array in der Klasse Turm eine Größe angeben, wenn ich es im Konstruktor initialiseren möchte, oder?
Wie ist also der Beste Weg, ein Objekt-Attribut vom Typ Array, über ein Konstruktor zu initialisieren?
Ich bin für jede Hilfe dankbar.
Viele grüße
Florian