Sto leggendo il C++ Primer, nel capitolo funzionamento sovraccarico, l'autore ha dato un esempio:Quali sono i tipi di ritorno degli operatori in C++?
// member binary operator: left-hand operand bound to implicit this pointer
Sales_item& Sales_item::operator+=(const Sales_item&);
// nonmember binary operator: must declare a parameter for each operand
Sales_item operator+(const Sales_item&, const Sales_item&);
poi, l'autore ha spiegato:
Questa differenza corrisponde ai tipi di ritorno di questi operatori quando applicato ai tipi aritmetici: l'addizione produce un valore rvalue e l'assegnazione composta restituisce un riferimento all'operando di sinistra.
Non sono abbastanza sicuro di "compound assignment returns a reference to the left-hand operand
". Qualcuno può approfondire ciò, e le cose rilevanti, per favore?
Cercare il metodo di concatenamento. In pratica significa 'a = b' restituisce' a' in modo che 'c = a = b' valuti a' c = (a = b) 'o' a = b' quindi a 'c = a' all in 1 statement. – chris