What is the best practice for returning references from class methods. Is it the case that basic types you want to return without a reference whereas class objects you want to r
Overloading assignment operators (like =, +=, -= etc.) is a good example where returning by reference makes a lot of sense. This kind of methods would obviously return large objects, and you don't want to get back pointers, so returning a reference is the best way to go. Works like a pointer and looks like returning by value.