C++ Operatore NOT bit a bit


Esempio

Il sovraccarico del NOT bit a bit ( ~ ) è abbastanza semplice. Scorri verso il basso per la spiegazione

Sovraccarico al di fuori della class / struct :

T operator~(T lhs)
{
    //Do operation
    return lhs;
}

Sovraccarico all'interno di class / struct :

T operator~()
{
    T t(*this);
    //Do operation
    return t;
}

Nota: l' operator~ ritorna di valore, perché deve restituire un nuovo valore (il valore modificato) e non un riferimento al valore (sarebbe un riferimento all'oggetto temporaneo, che avrebbe un valore immondizia al suo interno non appena l'operatore è fatto). Non const neanche perché il codice chiamante dovrebbe essere in grado di modificarlo in seguito (cioè int a = ~a + 1; dovrebbe essere possibile).

All'interno della class / struct si deve fare un oggetto temporaneo, perché non è possibile modificare this , come sarebbe modificare l'oggetto originale, che non dovrebbe essere il caso.