[C++] unerklärlicher Fehler, Variablendefinition in Klasse

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von avoir, 9. Mai 2008 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 9. Mai 2008
    Hey Leuts,

    wollte aus Spaß an der Freunde ein kleines Spiel proggen auf Textbasis, quasi ein Textadventure....

    nur habe ich hier ein Fehler, den ich mir nicht erklären kann.

    Code:
    class Game{
    public:
     bool habeItem=false;
     void nimm(int kapitel, int umgebung)
     {
     if (kapitel==1 && umgebung==1 && habeItem==true)
     cout << "Ich hab schon ein Item..." << endl;
     if (kapitel==1 && umgebung==1 && habeItem==false){
     cout << "So ein Item koennt ich vielleicht noch gebrauchen" << endl
     << "*** Item erhalten ***" << endl;
     habeItem=true; }
     }
    };
    
    
    
    Im main-Teil:
    
    
     Game Island;
     int umgebung=1, kapitel=1;
     string befehl;
     
     while(cin >> befehl)
     {
     if (befehl == "nimm")
     Island.nimm(kapitel, umgebung);
     }
     
     
     
    Der Fehler:
    
    12 D:\Programme\Dev-Cpp\main.cpp ISO C++ forbids initialization of member `habeItem' 
    12 D:\Programme\Dev-Cpp\main.cpp making `habeItem' static 
    12 D:\Programme\Dev-Cpp\main.cpp ISO C++ forbids in-class initialization of non-const static member `habeItem' 
     D:\Programme\Dev-Cpp\Makefile.win [Build Error] [main.o] Error 1 
    
    
    

    DevCPP zeigt mir den Fehler in der Zeile an, in der ich die bool definiere (hier: Zeile 3)

    Ich kann die bool natürlich als globale Variable definieren, aber das will ich möglichst nicht machen...

    help pls
     
  2. 9. Mai 2008
    AW: [C++] unerklärlicher Fehler, Variablendefinition in Klasse

    Man kann keine Vriablen inerhalb einer Klasse mit konstanten werten direkt initialisieren.

    Entweder du definierst die Variable als statisch (static), wodurch jedoch der Wert in jeder erstellten Klasse der selbe sein wird,
    oder du weist den Wert auserhalb der Klasse zu
    oder du initialisierst den Wert im Konstruktor.

    Mfg Rushh0ur
     
  3. 9. Mai 2008
    AW: [C++] unerklärlicher Fehler, Variablendefinition in Klasse

    Öhm du musst auch vorher deklarieren, welche Methoden etc. Public sind.

    Code:
    class TRechteck {
     private:
     double breite;
     double laenge;
     public:
     void setLB (double breite, double laenge);
     double berechnen ();
     AnsiString toString();
    };
    
    Danach schreibt man erst die Methoden oder Funktionen oder Eigenschaften.

    Code:
    void TRechteck::setLB(double breite, double laenge) {
     this->breite = breite;
     this->laenge = laenge;
    }
    
    double TRechteck::berechnen() {
    return breite*laenge;
    }
    
    AnsiString TRechteck::toString() {
    return FloatToStr(breite)+" "+FloatToStr(laenge);
    }
     
  4. 9. Mai 2008
    AW: [C++] unerklärlicher Fehler, Variablendefinition in Klasse

    @Rushh0ur
    Danke, das hat mir sehr geholfen, habs nun hinbekommen.

    @Overkiller
    Hab ja alles in der Klasse als public definiert.
    Und soweit ich weis kann man Deklaration und Definition gleich in der Klasse schreiben.
    Man kann, aber muss es nicht trennen....


    Beides mal ne BW raus
    ~closed
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.