operator+=



  • hallo ich will so etwas machen z.b.

    Cartoon tweety;
    tweety+=5;

    Also mus ich ein += operator benutzen nun ich will volgentes machen
    tweety.itsSpeed +5;//itsSpeed ist private
    MNun mein vorschlag für den abertaor ist

    const Cartoon &Cartoon::operator+=(const signed long int MutateSpeed)
    {
    	this->SetSpeed(this->GetSpeed()+MutateSpeed);
    
    	return *this;
    }
    

    Aber ich glaub nicht ob das richtich ist, also das macht was ich will kann mir einer weiter helfen?
    die klasse schaut so aus.

    class Cartoon
    {
    
    .
    .
    .
    .
    public:
    .
    .
    .
    .
    
    	const Cartoon &operator+=(const signed long int MutateSpeed);
    .
    .
    .
    .
    
    protected:
    
    	//Pernh thn taxhtha enos zwou
    	// *********************************************************
    	signed long int GetSpeed(void){ return (this->itsSpeed); }							//OK
    
    	//8eth mia nea taxhthta
    	// *********************************************************
    	void SetSpeed(signed long int NewSpeed){ this->itsSpeed=NewSpeed;}.
    .
    .
    .
    .
    .
    private:
    
    	// H taxhthta toukinoumen sxediou
    	// *********************************************************
    	mutable signed long int itsSpeed;
    .
    .
    .
    .
    .
    };
    

    und noch ein funktioniert das uach

    ostream& Cartoon::PrintPossitiv(ostream &out)
    {
    	//dhlosh Metablhton
    
    		//Kurio Programma
    	return out << cout.write(this->Messege2,this->GetSize2Messege());
    }
    

    Messege2 ist zeiger auf ein array, mit Getsize() bekkome ich die grosse von Messsege2. Mein problemm ist ostream << cout.write(), wobei cout doch auch ostream ist macht das vileicht problemme oder kennt einer was besseres auser jeden buchstaben einzel in ostream zu schreiben mit ein loop befehl. Weil irgentwie schaut es nicht schon aus meiner meinung.



  • Master User schrieb:

    Also mus ich ein += operator benutzen nun ich will volgentes machen
    tweety.itsSpeed +5;//itsSpeed ist private

    Dann mach das doch auch:

    const Cartoon &Cartoon::operator+=(const signed long int MutateSpeed)
    {
    	itsSpeed += MutateSpeed;
    
    	return *this;
    }
    
    ostream& Cartoon::PrintPossitiv(ostream &out)
    {
    	//dhlosh Metablhton
    
    		//Kurio Programma
    	return out << cout.write(this->Messege2,this->GetSize2Messege());
    }
    

    Versteh ich nicht. Wieso auf einmal cout, und warum soll cout dann in out geschrieben werden? ➡

    return out.write(Messege2, GetSize2Messege());
    

    BTW es heißt message, mit A.



  • Okey danke, aber wie kann ich sonst ein string in ofream schreiben ohne eine for oder while schleife zu benutzen oder muss ich unbedingt eine schleife benutzen?.



  • und das mit return *this is okey oder, muss so sein hage uber 15 min überlegt ob es sein muss oder nicht.



  • okey okey habe nicht gesehen das es out war bin etwas blid zurzeit 😉



  • Master User schrieb:

    und das mit return *this is okey oder, muss so sein hage uber 15 min überlegt ob es sein muss oder nicht.

    Ja, das sollte in einem Zuweisungsoperator immer stehen.

    Okey danke, aber wie kann ich sonst ein string in ofream schreiben ohne eine for oder while schleife zu benutzen oder muss ich unbedingt eine schleife benutzen?

    stream << message;
    

Anmelden zum Antworten