Usage classe print

xD ouais pas clair tout ça ... Et puis je viens de me rendre compte que HardwareSerial hérite de Stream, d'où ta remarque. Si en plus je me mets à ne plus suivre c'est sûr qu'on va pas s'en sortir ...

Déjà j'ai édité mon message précédent avec les fonctions pour ajouter un des print() pour mon raisonnement.

Je résume : HardwareSerial hérite de stream qui hérite de Print. Me trompe-je ?

Ensuite passons aux questions précises :

  • quand j'appelle Serial.print("Coucou") on appelle donc Print::print et dedans il y a un write() : celui la est-ce bien celui de la classe Print ?

  • si c'est bien ça, dans Print::write() utilise alors un autre write() celui de HardwareSerial j'imagine ? Comment est défini justement le fait que ça appelle ce write() la et pas Print::write ? Simplement le fait qu'il n'y a pas de proto pour write(uint8_t) ? On est d'accord ça ferait tourner en rond mais c'est pas ce qui arrête les compilateurs en général :wink:

En fait à force de relire je crois que je finis par comprendre comment ça se passe et pourquoi il faut autant de virtual. Il y a deux choses qui me turlupine vraiment concernant le HardwareSerial.h :

virtual size_t write(uint8_t) ==> pourquoi un virtual ? Simple précaution ?
using Print::write ==> utilité ? puisqu'il y a un write() dans HarwareSerial, Print::write() va se faire écraser ?