I was learning about C++ pointers and the -> operator seemed strange to me. Instead of ptr->hello(); one could write (*ptr).hello();
->
ptr->hello();
(*ptr).hello();
These alternate syntax modes are adopted from C, and you might get some additional understanding from A Tutorial on Pointers and Arrays in C, specifically, chapter 5, Pointers and Structure.