Non riescoa capire come fare il sovraccarico degli operatri. Se io all'operatore passo due posizioni (che potrebbe essere l'indice di un array come un indirizzo di memoria) poi l'operatore come fa a capire di che lista stiamo parlando? Cioè se io passo un indice 3 per la lista co array sequeziale o con cursore che è sempre collegata ma viene salvata su un array statico, il mio operatore comefa a sapere che ti stai riferendo a lista1 di tipo lista?Originariamente inviato da MItaly
Se lo puoi fare come metodo che confronta due posizioni lo puoi fare come operatore in overloading su due posizioni; peraltro nulla ti impedisce di creare l'operatore in questione solo per i tipi-posizione con cui ti è comodo fare questo lavoro.
Se hai una lista a puntatori per confrontare due elementi dovrai percorrere la lista cercando l'altro elemento. Questa è un'operazione piuttosto costosa, e non a caso la STL per le liste fornisce iteratori non confrontabili per distanza, ma solo per uguaglianza/differenza; se proprio serve sapere chi viene prima, viene fornito l'algoritmo distance (che opera su qualunque tipo di iteratore) che fornisce la distanza tra due iteratori.
Se lo sviluppo come metodo di lista sarà sottointeso che l'operando destro sia una lista ed il secondo lo imposto io di tipo posizione, ma a me in realtà seriverebbe la lista più due posizioni da confontare tra loro nella lista, come se fosse un operatore ternario o comunque un metodo che lavora su tre parametri. Come dovrei svilupparlo?