Overloaded function doubt

In the operator overloaded function we returning *f i.e f is a pointer which stores the address of T type data and we are returning it by dereferencing it hence its return type should be of T, but in the Function definition we have written that T& should be returned but we are returning T.