Wert wird nicht übernommen



  • 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 msg

    is wahrscheinlich ganz simpel und zieht sich hier ewig in die länge 😉



  • add mich mal im icq 🙂


Anmelden zum Antworten