Effective C++ by Scott Meyers tells in Chapter 5, Item 28 to avoid returning \"handles\" (pointers, references or iterators) to object internals and it definitely makes a go