The + here is unary + operator, not the binary addition operator. There’s no addition happening here.
Also, the syntax (int) is used for typecasting.
You can re-read that statement as
(int) (+ 4) * 5;
which is parsed as
((int) (+ 4)) * (5);
which says,
- Apply the unary
+operator on the integer constant value4. - typecast to an
int - multiply with operand
5
This is similar to (int) (- 4) * (5);, where the usage of the unary operator is more familiar.
In your case, the unary + and the cast to int – both are redundant.