Assignment operators
Assignment operators modify the value of the object.
| Operator name | Syntax | Overloadable | Prototype examples (for class T) | |
|---|---|---|---|---|
| Inside class definition | Outside class definition | |||
| basic assignment | a = b | Yes | T& T::operator =(const T2 &b); | N/A | 
| move assignment (C++11) | a = rvalue | Yes | T& T::operator =(const T2 &&b); | N/A | 
| addition assignment | a += b | Yes | T& T::operator +=(const T2 &b); | T& operator +=(T &a, const T2 &b); | 
| subtraction assignment | a -= b | Yes | T& T::operator -=(const T2 &b); | T& operator -=(T &a, const T2 &b); | 
| multiplication assignment | a *= b | Yes | T& T::operator *=(const T2 &b); | T& operator *=(T &a, const T2 &b); | 
| division assignment | a /= b | Yes | T& T::operator /=(const T2 &b); | T& operator /=(T &a, const T2 &b); | 
| modulo assignment | a %= b | Yes | T& T::operator %=(const T2 &b); | T& operator %=(T &a, const T2 &b); | 
| bitwise AND assignment | a &= b | Yes | T& T::operator &=(const T2 &b); | T& operator &=(T &a, const T2 &b); | 
| bitwise OR assignment | a |= b | Yes | T& T::operator |=(const T2 &b); | T& operator |=(T &a, const T2 &b); | 
| bitwise XOR assignment | a ^= b | Yes | T& T::operator ^=(const T2 &b); | T& operator ^=(T &a, const T2 &b); | 
| bitwise left shift assignment | a <<= b | Yes | T& T::operator <<=(const T2 &b); | T& operator <<=(T &a, const T2 &b); | 
| bitwise right shift assignment | a >>= b | Yes | T& T::operator >>=(const T2 &b); | T& operator >>=(T &a, const T2 &b); | 
 
  | ||||
[edit] Explanation
basic assignment operator replaces the contents of the object a with those of b
move assignment operator replaces the contents of the object a with those of b while minimizing copying overhead (no deep copy is performed). It complements the basic assignment operator. (since C++11)
Other assignment operators modify the contents of the object. Usually they are overloaded in classes performing mathematical operations.
[edit] See also
| Common operators | ||||||
|---|---|---|---|---|---|---|
| assignment |   increment decrement  | 
arithmetic | logical | comparison |   member access  | 
other | 
| 
 a = b  | 
 ++a  | 
 +a  | 
 !a  | 
 a == b  | 
 a[b]  | 
 a(...)  | 
| Special operators | ||||||
| 
 static_cast converts one type to another compatible type   | ||||||