SomeClass *one = new one( someparameter ); // stored in a pointer
SomeClass two = one( someparameter ); // stored as is
// how to call them
one->function();
(*one).function();
two.function();
so I think that -> is just a short version for dereferencing from a pointer to a class.
For builtin pointers x->y is equivalent to (*x).y. Classes are free to overload either dereference or pointer member selection operators, but following the rule of least surprise they should work the same. For example look at the unique_ptr class.