Dämliche Zuweisung funktioniert nicht
-
Servus,
ich bin hier kurz vorm Ausrasten ... ich finde den Fehler einfach nicht.
ich möchte einfach im Konstruktor meiner Klasse einer Membervariablen
einen enum Typ zuweisen. Das Programm läuft ohne Warnungen oder Fehler durch, aber wie ich im Debug-Modus gesehen habe funktioniert die enum Typ Zuweisung nicht.
hier der Code:#include "Datentypen.h" #include "StdAfx.h" #include "Spielfeld.h" CSpielfeld::CSpielfeld(void) : x_i(0) , y_i(0) { m_modus = EINGABE; for(int i=0;i<81;i++) { m_Felder[i].Feldart = LEER; // <- HIER Initialisierung des // enum Types m_Felder[i].i_Zahl = 10; m_Felder[i].i_sZahl = 0; for (int j=0;j<9;j++) {m_Felder[i].i_mZahlen[j] = j+1;} } }Die Definition des enum-Types (Feldart) steht in einer seperaten Headerdatei (Datentypen.h), welches oben eingebunden wird:
#pragma once #include <deque> #include <vector> #include <stdio.h> #include <string> #include <cstdlib> #include <ctime> #include <iostream> #include <conio.h> #include <iomanip> #include <fstream> enum FELDART {VORGABE, LEER, RICHTIG, FALSCH, VORSCHLAG,SYSTEM}; struct FELD { int i_mZahlen[9]; int i_Zahl; int i_sZahl; FELDART Feldart; }; enum MODUS {EINGABE,SPIEL};Wenn ich den Wert von "Feldart" nach der Zuweisung im Debugger kontrolliere, steht dort: "error: cannot obtain value", gleiches Problem besteht bei "MODUS",
Bin für jeden Hinweis dankbar.Viele Grüße,
Woody
-
Die genaue Fehlermeldung wäre wohl hilfreicher.
-
Servus Ponto,
danke für die schnelle antwort,
wie gesagt läuft das Programm ohne Warnungen oder Fehler durch, wenn ich die Variable im Debugger überwache steht dort nur diese Meldung (cannot obtain value)
-
Also ich sehe da auch mal kein Problem. Probier einfach mal alles soweit, wie möglich zu vereinfachen. Und dann schauen, ob es immernoch nicht geht.
-
Also das Funktioniert im Visual Studio, der Debugger zeigt mir Feldart = LEER an.
[/cpp]
enum FELDART {VORGABE, LEER, RICHTIG, FALSCH, VORSCHLAG,SYSTEM};int main()
{
FELDART Feldart;
Feldart = LEER;return 0;
}
[cpp]
Was für nen Debugger verwendest du?Kann es sein, dass du das Array nicht richtig erstellt hast?
-
Also das Funktioniert im Visual Studio, der Debugger zeigt mir Feldart = LEER an.
enum FELDART {VORGABE, LEER, RICHTIG, FALSCH, VORSCHLAG,SYSTEM}; int main() { FELDART Feldart; Feldart = LEER; return 0; }Was für nen Debugger verwendest du?
Kann es sein, dass du das Array nicht richtig erstellt hast?