Gå til innhold

Overkjøring av += opperator?


Anbefalte innlegg

Hei. Har et lite problem jeg ikke finner helt ut av.

 

Vi har en oppgave om å lage en egen Queue klasse i c++.

Denne køen skal ta imot hvilken som helst data ved bruken av template<class T>

 

Ene oppgaven her er å overkjøre += oppeartoren til Queue klassen som jeg har lagd sånn at jeg kan skrive queue+="test"; for å legge til denne test stringen i køen. Jeg har allerede en add metode som fungerer, så det å legge til er ikke problemet, men sliter litt med å forstå strukturen på += overkjøreren.

 

Foreløpig har jeg:

template<class T>
Queue<T> Queue<T>::operator+=(T v){
    add(v);
}

Den add metoden har jeg som sagt laget fra før, men jeg aner ikke hvordan oppbygingen til metoden skal se ut...

 

 

Lenke til kommentar
Videoannonse
Annonse

Ikke helt slik operator overloading skal brukes (ikke rart mange ikke akkurat er tilfreds med featuren :--D), men.

 

template< typename T >
Queue< T >& Queue< T >::operator+=( T v ) {
    this->add( v );
    return *this;
}
Jeg ser ikke helt hva du mener med sturktur, da. Operator overloading ser ut som hvilken som helst annen funksjon.

 

edit: og om du implementerer += bør du også vurdere å implementere -=.

Endret av Lycantrophe
Lenke til kommentar

Ikke helt slik operator overloading skal brukes (ikke rart mange ikke akkurat er tilfreds med featuren :--D), men.

 

template< typename T >
Queue< T >& Queue< T >::operator+=( T v ) {
    this->add( v );
    return *this;
}
Jeg ser ikke helt hva du mener med sturktur, da. Operator overloading ser ut som hvilken som helst annen funksjon.

 

edit: og om du implementerer += bør du også vurdere å implementere -=.

 

Ah, takker så mye :)

Er klar over at det er en helt vanlig funksjon, men roter så veldig mellom de som skal være bool osv...

Stod i oppgaven at det bare skulle være += men ser poenget ditt med at -= også burde vært med ja.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...