Auteur Sujet: Structures et class objets  (Lu 19101 fois)

Guillaume

  • Global Moderator
  • Full Member
  • *****
  • Messages: 204
    • Voir le profil
    • Locoduino
Structures et class objets
« le: février 20, 2015, 08:13:12 pm »
Bonjour,
je me poste une question concernant ces deux notions de langage Arduino.

D'un coté, nous avons des structures qui définissent un objet dans son ensemble avec les différentes variables qui le composent. Si on reprend par exemple l'exemple de petittrain sur ce forum avec un cycle jour/nuit, une DEL qui s'allume et s'éteint selon un temps donné et par étapes (DEL en PWM), nous avons la broche mais aussi les temps définis pour l'allumage ou l'extinction des lumières.

De l'autre coté, nous avons les objets qui sont composés de 2 choses, la définition de l'objet avec les différentes variables qui définissent l'objet mais aussi les méthodes qui définissent le comportement de l'objet.

Pour ma part, il me semble que la class objet est composé d'une structure ainsi que les méthodes qui définissent son comportement. Dans ce cas, est-ce que les structures ont une place dans le codage/programme sur un coté particulier ? Ont-ils une place préférentielle dans une situation donnée ou non ?
G.

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1715
    • Voir le profil
Re : Structures et class objets
« Réponse #1 le: février 20, 2015, 08:31:31 pm »
Historiquement, le C++ a étendu les structures du C avec des fonctions (ou méthodes dans le jargon objet). Comme sur Arduino on est en C++, on peut également utiliser des struct en y définissant des méthodes. Les classes, comme présentées par Thierry dans Le monde des objets (2) ajoutent la possibilité de rendre des membres privés (private) ou protégés (protecteur). Sinon c'est exactement la même chose. Donc autant utiliser les classes qui ajoutent une protection des membres

Faut-il utiliser le C et les struct ou le C++ et les classes ? Si on se sent à l'aise avec les objets, il vaut mieux utiliser le C++ car c'est un « meilleur C »
Cordialement

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 810
    • Voir le profil
Re : Structures et class objets
« Réponse #2 le: février 20, 2015, 08:36:42 pm »
On peut dire que les structures sont les 'ancêtres' des classes. Effectivement, à première vue, une classe est une structure qui contient en plus des fonctions, mais ce qui fait la grosse différence, c'est ce qui est expliqué dans le troisième volet du monde des objets, l'héritage. Avoir des comportements de base que l'on peut redéfinir pour un objet plus pointu, puis redéfinir encore pour une classe encore plus précise, comme un accessoire, dérivé en aiguillage, puis en aiguillage lent, pour finir en aiguillage lent Tortoise ! On comprend que l'activation de l'accessoire sera différent selon la classe. Et manipuler un accessoire, et appeler 'On()' sans se préoccuper du véritable type de l'accessoire est un luxe de programmation inouï...
Les structures décrivent des objets plats, contigus mais séparés. Les classes définissent une hiérarchie, certaines héritant des données et des comportements des autres... Le monde objet est un autre monde !

Guillaume

  • Global Moderator
  • Full Member
  • *****
  • Messages: 204
    • Voir le profil
    • Locoduino
Re : Structures et class objets
« Réponse #3 le: février 20, 2015, 08:54:33 pm »
Va donc pour les objets alors, que je maîtrise de base ;).
merci pour vos réponses.
G.