You can overload these operators: (in C++):

, 	! 	!= 	% 	%= 	& 	& 	&& 	
&= ( ) * * *= + +
++ += – – –– –= –>
–>* / /= < << <<= <= =
== > >= >> >>= [ ] ^ ^=
| |= || ~ delete new

And you can't overload the following:

. 	.* 	:: 	?:	

You can't overload # and ##, either, but they're not really operators.

The following operators must be overloaded as a class member:

=	( )	[ ]	->

There are no operators which CAN'T be overloaded as a member, but if the left-hand operand isn't your class, it can't be a member. (The left-hand operand is the object on which the overloaded method is being called.) So like the stream insertion/extraction operators (<< and >>).