MEC++: Niente overload per questi operatori

Appunti tratti dalla rilettura di More Effective C++ di Scott Meyers. Secondo blocco: Operatori.

(7) Gli operatori && (and logico) || (or logico) , (virgola) non vanno sottoposti a overload

Il motivo principale per questo divieto, per quanto riguarda gli operatori and e or logico, é che non é possibile al programmatore replicare il comportamento standard di questi operatori nell'overloading.

Lo stesso dicesi per l'operatore virgola, che finirebbe per comportarsi in modo inconsueto.

I suddetti operatori potrebbero essere sottoposti a overload ma si consiglia di non farlo, per altri operatori non é proprio possibile. Sono quelli per il casting (C++ style), new, delete, sizeof, typeid, punto, punto-star, l'operatore di risoluzione di scopo ::, e l'operatore ternario ?:, gli altri operatori possono essere ridefiniti.

Nessun commento:

Posta un commento