Il n'y a pas de signification définie par la langue - c'est juste une convention que certains utilisent pour distinguer les variables d'instance des variables locales. D'autres variantes incluent m_foo (et s_foo ou g_foo ou des variables statiques) ou mFoo; alternativement, certaines personnes préfèrent les variables locales (et les paramètres) au lieu des variables d'instance.
Personnellement, je n'utilise pas de préfixes comme celui-ci, mais c'est un choix de style. Tant que tout le monde travaille sur le même projet, ce n'est généralement pas un problème. J'ai vu certains horriblement code incohérent si ...
Plus généralement, pour les champs d'instance non publics (qui incluent aussi les champs internes et protégés). – Noldorin