Since +=
normally modifies its left-hand operand, you'd generally rather not implement it in terms of operator+
(which needs to create a temporary value to hold the result).
Likewise, since you can't reasonably do a conversion on the left operand, it should really be a member function.
Utility &Utility::operator+=(Utility const &right) {
intValue += right.intValue;
return *this;
}