[C++] esempio overload degli operatori
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
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
Non mi sembra tanto difficile inventarsi un problema per questo tipo di cose.
Per esempio:
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.
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.
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.
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.
no , è troppo elevato per me
ci vorrebbe qualcheduno già svolto
ci vorrebbe qualcheduno già svolto
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.
Non è difficile trovari classi che implementano l'overload di operatori, in generale se guardi qualche libreria fatta da altri queste cose le trovi.