[C++] esempio overload degli operatori

Bandit1
Ciao a tutti ragazzi
potete indicarmi qualche esercizio svolto, come ad esempio una traccia d'esame che prevede l'uso dell'overload dell'operatore = << ed anche >>

http://www.bo.cnr.it/corsi-di-informati ... ml#eredita

per la teoria ho capito molto di più vedendo questo sito, però vorrei vedere qualcosa di pratico.
Soprattutto per quanto riguarda lo sviluppo di una classe con questo tipo di funzione

Risposte
vict85
Non mi sembra tanto difficile inventarsi un problema per questo tipo di cose.

Per esempio:

Definire una classe Torre che rappresenta la posizione di una Torre su una scacchiera e che permetta di muoverla. Fare l'overload di = per testare se due Torri si trovano nella stessa posizione, << per visualizzare la posizione nella forma (x,y) e >> per calcolare la posizione attraverso una sequenza di caratteri del tipo 'U' (per up), 'D' (per down), 'L' (per left) e 'R' (per right)


Ad esempio se l'utente inserisce "LLDRLU" allora la torre si sposterà 2 posizione a sinistra (3 a sinistra e 1 a destra fanno 2 a sinistra e i movimenti in su e in giù si eliminano).

Puoi scegliere come vuoi il comportamento ai bordi della scacchiera, se la vuoi mettere. Se per esempio sei al bordo in basso a sinistra della scacchiera e decidi di non muoverlo in una direzione se sei al bordo allora l'esempio sopra muoverebbe di uno in alto. Il mio consiglio è di iniziare senza bordi e poi sperimentare. L'interfaccia decidila tu.

vict85
Mi sono reso conto che forse volevi usare gli operatori << >> non con cin, cout e in generale l'input e l'output. Eccoti un'altro esercizio:

Modellare il seguente:

La classe Portafoglio indica quanto le persone hanno. Scrivere gli operatori = < e > per vedere se le persone hanno la stessa quantità di soldi (a meno di una moneta) o chi ce ne ha di più. Usare gli operatori << e >> per indicare l'operazione che uno dei due dà all'altro la metà dei suoi soldi (decidi tu se approssimati per difetto o eccesso). Usando solo queste operazioni è possibile costruire una funzione che permetta a due portafogli di uguagliarsi a meno di 1 moneta?

[EDIT] A << B restituisce A a seguito della transazione, similmente A >> B restituisce A a seguito della transizione. Altrimenti non ha senso.

Bandit1
no , è troppo elevato per me
ci vorrebbe qualcheduno già svolto

vict85
Qui cè trattato con un esempio http://www.deitel.com/articles/cplusplu ... index.html

Non è difficile trovari classi che implementano l'overload di operatori, in generale se guardi qualche libreria fatta da altri queste cose le trovi.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.