הנה קישור בשבילך. הסיפור הוא בגדול שאופרטור חיבור של מספרים מבצע המרה אוטומטית של האופרנדים כדי לקבל טיפוס מסוג מסוים עבור התוצאה. אם אין מספר ממשי (float או double) בתור אופרנד ואין long, כל הביטוי הופך אוטומטית לטיפוס מסוג int ולכן נדרש cast בסוף. כל זה מתואר בטבלאות שיש בקישור שצירפתי. האופרטור =+ לא משנה את הטיפוס ואין איתו בעיה. חשוב מאוד גם לציין שאופרטור חיבור unary מבצע promotion לסוג הטיפוס. אם הוא "קטן" מ-int, הוא מקודם להיות int (ולכן כנראה צריך cast).