Coming from C++ to Java, the obvious unanswered question is why didn\'t Java include operator overloading?
Isn\'t Complex a, b, c; a = b + c;
much simpl
This is not a good reason to disallow it but a practical one:
People do not always use it responsibly. Look at this example from the Python library scapy:
>>> IP()
>>> IP()/TCP()
>
>>> Ether()/IP()/TCP()
>>
>>> IP()/TCP()/"GET / HTTP/1.0\r\n\r\n"
>>
>>> Ether()/IP()/IP()/UDP()
>>>
>>> IP(proto=55)/TCP()
>
Here is the explanation:
The / operator has been used as a composition operator between two layers. When doing so, the lower layer can have one or more of its defaults fields overloaded according to the upper layer. (You still can give the value you want). A string can be used as a raw layer.