Quand dois-je utiliser un point, une flèche, une ou deux points de référence aux membres d'une classe en C++?

Venant d'autres C-langages dérivés (comme Java ou C#) pour C++, il est au premier abord très déroutant que le C++ a trois façons de faire référence aux membres d'une classe: a::b, a.b, et a->b. Quand dois-je utiliser une de ces opérateurs?


(Note: Ceci est destiné à être une entrée à Un Débordement de pile du C++ FAQ. Si vous voulez une critique de l'idée de fournir une FAQ dans le présent formulaire, puis l'affichage sur des méta qui a commencé toute cette serait l'endroit pour le faire. Les réponses à cette question sont surveillés dans le C++ tchat, où la FAQ idée a commencé à en premier lieu, de sorte que votre réponse est très probablement le faire lire par ceux qui sont venus avec l'idée.)

OriginalL'auteur sbi | 2011-02-13