Es fácil, supon una clase con el entero privado "numero" y la función publica "función()".
Des del main, para llamar a "funcion()" de nuestro objeto hacemos
Pero cuando estamos en funcion() no ves el objeto implícito porque no tiene nombre asignado, sin embargo ha sido llamado a través de un objeto. Entonces para acceder a los miembros de este objeto que no vemos se usa el puntero this. "this->numero" daría el numero del objeto que ha llamado a funcion().
En este caso, pero, como no se pasa ningún parametro del tipo del objeto, con escribir "numero" nos basta.
Sin embargo supon una funcion cuyo prototipo sea "funcion(const objeto& a, const objeto& b)".
Cuando un objeto implícito llama a la función, no puedes usar "numero" porque no puedes saber a cual te referies, ¿al de a, al de b, al del implícito?
Por ello aquí es necesario usar this->numero para llamar al numero del objeto implícito. Y para a y b usar a.numero o b.numero, ya que son del mismo tipo de la clase, si no deberíamos llamar a sus funciones públicas.
Espero que me haya explicado.