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
Return basic types by value, except if you want to let the caller access the actual member.
Return class objects (even std::string) by reference.