Wert wird nicht übernommen
-
aber da steht o nich 0
-
ahso
sry hab mich vertippt ... im code ist es eine 0
entschuldigung für den fehler
*habs hingeschrieben um zuzeigen wo der fehler steckt*
[mehr "Code"]
void assign(WORKER& A,WORKER& B,WORKER& C) { int cWages; string cFirstName; string cFamilyName; WORKER bot; ... int arrange; cout << "Kartei: ";cin >> arrange; switch(arrange) { case 1: A = bot; input = true; break; case 2: B = bot; input = true; break; case 3: C = bot; input = true; break; default: cout << "Fehler bei der Eingabe!\n"; break; }}while(input==false); ....
WORKER& WORKER::operator=(const WORKER& rhs) { if(this == &rhs) return *this; delete Wages; delete FirstName; delete FamilyName; Wages = new int; FirstName = new string; FamilyName = new string; *Wages = rhs.GetWages(); *FirstName = rhs.GetFirstName(); *FamilyName = rhs.GetFamilyName(); return *this; }
-
Coda schrieb:
Hier melde ich mich wieder mit einem dummen fehler
Stimmt!! Es heißt "übernommen"!
WIESO KANN HIER JEDER ZWEITE PROGRAMMIERER KEIN DEUTSCH? Is doch peinlich
-
worin besteht denn der fehler?
was erwartest du?
-
ARGH schrieb:
Coda schrieb:
Hier melde ich mich wieder mit einem dummen fehler
Stimmt!! Es heißt "übernommen"!
WIESO KANN HIER JEDER ZWEITE PROGRAMMIERER KEIN DEUTSCH? Is doch peinlich
manche leute ham probleme... tsss
-
ich gebe z.b. sein gehalt ein (3000)
case 1: { // Auswertung, damit nur die "Karteien" angezeigt werden die leer sind assign(Group[0],Group[1],Group[2]); cout << Group[0].GetWages(); //hier ist der wert korrekt }
for(int i=0;i<3;i++) { result = DisplayWorker(Group[i].GetWages()); cout << Group[0].GetWages(); //hier nicht mehr (hier nimmt er den vordefinierten wert(0)) if(result == SUCCESSFUL)
-
entscheidend is was zwischen dem aufruf von case 1: und case 2: passiert
das sieht man in deinem geposteten code ned
-
das hier ?
case 1: { // - *Arbeiter anlegen* - eingabe zur Auswertung, damit nur die "Karteien" angezeigt werden die leer sind assign(Group[0],Group[1],Group[2]); } break; case 2: { // - *Arbeiter Kopieren* - es soll getestet werden (mit result) ob die "Kartei" leer ist. // ist sie leer wird sie nicht Angezeigt. ERR_CODE result; for(int i=0;i<3;i++) { result = DisplayWorker(Group[i].GetWages()); cout << Group[0].GetWages(); if(result == SUCCESSFUL)
-
ne er arbeitet den code in case 1: ab, springt aus dem switch und was passiert dann bis er wieder ins switch geht und case 2: abarbeitet?
-
ok danke
mein fehler war ich habe
WORKER* Group = new WORKER[3];
in der do schleife gehabt somit hat der neu angelegt
danke für die hilfe, hab garnicht drauf geachtet.->hast du verbesserungsvorschläge ?
-
wie wärs mit
static WORKER* Group = new WORKER[3];When modifying a variable, the static keyword specifies that the variable has
static duration (it is allocated when the program begins and deallocated when
the program ends) and initializes it to 0 unless another value is specified.
-
nun hab ich weitergemacht der compiler meldet keinen fehler aber beim startet bzw. beim kopieren meldet der einen fehler:
class WORKER { private: //Zeiger für eine tiefe Kopie int* Wages; string* FirstName; string* FamilyName; public: WORKER(); ~WORKER(); WORKER(const WORKER&); WORKER& operator=(const WORKER&); int GetWages() const {return *Wages;} string GetFirstName() const {return *FirstName;} string GetFamilyName() const {return *FamilyName;} void SetWages(int setWages) {*Wages = setWages;} void SetFirstName(string FiName) {*FirstName = FiName;} void SetFamilyName(string FaName) {*FamilyName = FaName;} }; WORKER::WORKER() { Wages = new int(0); FirstName = new string("default"); FamilyName = new string("default"); } WORKER::~WORKER() { delete Wages; delete FirstName; delete FamilyName; } WORKER::WORKER(const WORKER& rhs) { Wages = new int; FirstName = new string; FamilyName = new string; *Wages = rhs.GetWages(); *FirstName = rhs.GetFirstName(); *FamilyName = rhs.GetFamilyName(); } WORKER& WORKER::operator=(const WORKER& rhs) { if(this == &rhs) return *this; delete Wages; delete FirstName; delete FamilyName; Wages = new int; FirstName = new string; FamilyName = new string; *Wages = rhs.GetWages(); *FirstName = rhs.GetFirstName(); *FamilyName = rhs.GetFamilyName(); return *this; }
/ - *Arbeiter Kopieren* - es soll getestet werden ob die "Kartei" leer ist. // ist sie leer wird sie nicht Angezeigt. for(int i=0;i<3;i++) { if(DisplayWorker(Group[i].GetWages()) == 1) cout << "Von Arbeiter Nr. "<<i+1<<" kopieren"<<endl; } int vZ; cout<<"Auswahl: ";cin >>vZ; cout <<endl; // - *Arbeiter Kopieren* - es soll getestet werden ob die "Kartei" leer ist. // ist sie leer wird sie Angezeigt. for(int k=0;k<3;k++) { if(DisplayWorker(Group[i].GetWages()) == 0) cout << "Auf Arbeiter Nr. "<<i+1<<" kopieren"<<endl; } int nZ; cout<<"Auswahl: ";cin >>nZ; cout <<endl; Group[nZ] = Group[vZ]; // Fehler - mit irgendwas von Zeiger (int GetWages() const ...;)
wäre dankbar wenn ihr mir nochmal helfen könnt
-
sind nZ und vZ gescheite werte?
ausserdem änder mal
WORKER::WORKER(const WORKER& rhs) { Wages = new int; FirstName = new string; FamilyName = new string; *Wages = rhs.GetWages(); *FirstName = rhs.GetFirstName(); *FamilyName = rhs.GetFamilyName(); }
in
WORKER::WORKER(const WORKER& rhs) { this->operator =(rhs); }
-
sovok ich habe mich geirrt der fehler findet schon früher statt
schon bei
int vZ; cout<<"Auswahl: ";cin >>vZ;
die werte für vZ und nZ sollten zwischen 0 und 2 sein
-
int vZ;
cout<<"Auswahl: ";cin >>vZ;daran scheint nix falsch zu sein
gib mal genauere infos über den fehler oder schreib mir ne icq msgis wahrscheinlich ganz simpel und zieht sich hier ewig in die länge
-
add mich mal im icq