when overloading a bit shift in c++, does it actually take one arguments or two?? how does the function looks like?