La domanda è un po' disordinata, comunque cerco di risponderti come meglio posso.

L'overloading degli operatori binari (=che accettano due argomenti, uno a sinistra e uno a destra) si può effettuare o con una funzione libera o con una funzione membro.

Il primo caso è il più semplice: si crea una funzione sciolta con nome operator seguito dal simbolo dell'operatore, ad esempio operator>=; i parametri ricevuti saranno due, e saranno dei riferimenti (const quando è il caso) ai due tipi in questione. Il tipo "naturale" restituito naturalmente varia a seconda dell'operatore, ma il linea di massima se non ricordo male è possibile restituire qualunque tipo.

L'overloading di un operatore di confronto potrà essere espresso ad esempio con:
codice:
bool operator<=(const posizione & Left, const posizione & Right)
{
    // ...
}
Nota che i riferimenti qui sono costanti perché non ha senso che un operatore di confronto modifichi i suoi operandi, e soprattutto deve poter essere chiamato anche su oggetti const (in sola lettura). Tra l'altro se non erro nulla vieta di avere tipi diversi per Left e Right; i nomi sono arbitrari, semplicemente ti ricordano che il primo parametro è quello che nell'espressione sta a sinistra del <= e il secondo sta alla sua destra.

(parentesi: tieni conto che in generale quando c'è bisogno di implementare un operatore di confronto, la stragrande maggioranza degli algoritmi STL richiede che ci sia il < e l'==, di rado vengono richiesti gli operatori compositi o il > - fine parentesi)

L'altro metodo invece prevede la definizione dell'operatore all'interno della classe del tipo che sta alla sinistra. In tal caso sarà una cosa del genere:
codice:
bool operator<=(const posizione & Right) const
{

}
L'operando di sinistra è la classe su cui è invocato il metodo, ossia this. Nota che qui è this ad essere const (l'oggetto su cui opera il metodo non è modificabile) dato che la funzione è dichiarata come tale.

Per ulteriori informazioni sulle definizioni "standard" degli operatori in overloading, ti consiglio di dare un'occhiata a questa pagina.

Aggiungo anche questo come linee guida "logiche" (e non semplicemente sintattiche) su come effettuare l'overloading.