Frage von WarumGeld, 28

Wie kann ich das mit C++ unsetzen?

Ich programmiere gerade ein winziges Programm (im Moment nur zu Übungszwecken), in dem es eine Klasse gibt die einen Wert von einer anderen Klasse (Variable : 'Essen') "in sich aufnehmen" soll. In der klasse die das essen "verspeist" heißt der Wert dann Leben Aber wenn ich in die "Essfunktion" der Klasse folgendes hineinschreibe : ""Leben += CHaus::Essen;"", dann geht das nicht. Hier mal der Quellcode : //Headerdateien #include

//Namespaces using namespace std;

//Spielerklassen class CSpieler { private: //Membervariablen int Leben;

public: //Memberfunktionen void LooteHaus () { Leben += CHaus::Essen; } void ShowLeben ();

CSpieler ();
~CSpieler ();

};

//Instanzen CSpieler Spieler1; CSpieler Spieler2;

//Häuserklassen class CHaus { private: //Membervariablen int Essen; char Haeusername[30];

public: //Memberfunktionen CHaus (); ~CHaus (); };

//Hauptprogramm int main () { }

Und hier die Fehlermeldung die sich auf die oben erwähnte Codezeile bezieht : "Error: Ein unvollständiger Typ ist nicht zulässig.""

Ich habe lange nicht mehr programmiert, und bin mir sicher das es nur ein banaler Fehler ist, aber was ist denn nun falsch ?

Antwort
von J0T4T4, 28

So wie ich das sehe, versuchst du von außerhalb von CHaus auf die private Variable CHaus::Essen zuzugreifen. Was denkst du, was funktioniert nicht? Mach dir ne Funktion void CHaus::getEssen(), und lass dir mit der Essen zurückgeben. Diese Funktion sollte dann auch public sein.

Kommentar von WarumGeld ,

Ich hab' grad erst wieder mit C++ angefangen, und es davor fast vollständig verlernt. Also verzeih bitte mir dumme, offensichtliche Fehler ^^

Kommentar von J0T4T4 ,

Ich mache auch dumme Fehler: Zum Beispiel brauchts du nämlich sicher keine void-Funktion, um etwas zurückzugeben ;)

Keine passende Antwort gefunden?

Fragen Sie die Community