I think what you want is wrong since it obscures the type system of C++. myStringis a pointer to a AString and not a AString. Dont't try to hide the fact that it's a pointer. It's an entry point for ugly bugs and if you're coding in a team everyone else would be nothing but confused!