Create SharedPtr

SharedPtr Object have the ability of having reference-counted ownership of a pointer.