Possible Duplicate:
Rationale of enforcing some operators to be members
The operators [] , -> , = cannot be overloaded as static functions...why???
Possible Duplicate:
Rationale of enforcing some operators to be members
The operators [] , -> , = cannot be overloaded as static functions...why???
Effectively, because the standard says so.
However, these decisions were made long before the standardization process started, probably mainly by Stroustrup alone. If you want to know what lead to the decisions for each operator, you should read The Design and Evolution of C++.
A lot of causes.
Firstly, if it was possible, it would require huge programming expertise.
Secondly, operator overloading by itself is a thing that leads to a low readability of a program. And if you overloaded fundamental operators, than the readability dramatically goes down.
Thirdly, image you want to overloaded '->' operator. Why would you do this? No visible reason.