Class Wertzuweisung
-
Ich habe mal wieder ein Problem und finde den Fehler mal wieder nicht

//main.cpp #include <iostream> #include "Laden.h" using namespace std; int main(){ const int MAXGELD=500; person(MAXGELD); return 0; }//Laden.h #ifndef LADEN_H_INCLUDED #define LADEN_H_INCLUDED class person{ public: person(int maxgeld) :geld(maxgeld){ } private: int geld; }; #endif // LADEN_H_INCLUDEDIrgendwie will das nicht so wie ich das möchte :s
Ich denke die Fehlermeldungen sind hier nicht wichtig (für euch)Gruß
-
Skeptar schrieb:
Ich denke die Fehlermeldungen sind hier nicht wichtig (für euch)
Aber für dich. Es sei denn du willst keine Antwort.
-
Bashar schrieb:
Aber für dich. Es sei denn du willst keine Antwort.
Es war mir klar ich hätte es nicht reinschreiben sollen

Fehlermeldungen:MAXGELD hat eine vorherige Deklaration als const int MAXGELD
in Konflikt stehende Deklarattion person MAXGELDwerde daraus aber nicht schlau
-
Der Compiler nimmt an, du möchtest eine Instanz von person namens MAXGELD erstellen. Diesen Irrtum kannst du beheben, indem du vor ( einen Namen angibst oder die erstellte person zuweist.
person(MAXGELD); // person MAXGELD; -> Konflikt / Fehler person a(MAXGELD); // ok person a = person(MAXGELD); // ok
-
Danke es geht

Jedzt möchte ich dies einfach nur um eine Variable erweitern klappt aber nicht..
(ich werde noch verrückt)#ifndef LADEN_H_INCLUDED #define LADEN_H_INCLUDED class person{ public: person(int MAXGELD, int Preis) :geld(MAXGELD), preis(Preis){ } /*void kauf(int anzahl){ anzahl=anzahl; }*/ private: int preis; int geld; }; #endif // LADEN_H_INCLUDED#include <iostream> #include "Laden.h" using namespace std; int main(){ const int MAXGELD=500, preis=70; person ablauf(MAXGELD, preis); cout << "Anzahl der Hosen eingeben(stk. 70 Euro): "; int anzahl=0; cin >> anzahl; return 0; }
-
Fehlermeldung/-beschreibung?

-
warnung: person::geld wird initialisiert nach
Warnung: int person::preis
warnung: when initialized here
-
Das ist nur eine Warnung. Du hast behauptet, es "klappt nicht".
Die Warnung kommt daher, dass die tatsächliche Initialisierungsreihenfolge sich immer nach der Reihenfolge richtet, in der die Variablen in der Klasse deklariert sind; nicht nach der Reihenfolge, in der sie in der Initialisierungsliste aufgeführt sind.
-
Hmm danke

Aber es hat ja nicht kompeliert -> es klappt nicht (für mich)
Danke für die schneller Antwort
-
Warnungen verhindern aber nicht das Compilieren, also hat es entweder compiliert oder es gab außer der Warnung noch Fehler (die du wieder unterschlagen hast
).