LOCODUINO

Le monde des objets (3)

Une sombre histoire d’héritage...

. Par : Thierry

L’héritage sans soucis Depuis le deuxième article, nous avons vu une jolie classe Led. Mais comment ferions nous pour coder une classe LedBicouleur qui s’occuperait d’une diode à deux couleurs dotée de trois pins ? Ce type de diode est le plus souvent un assemblage de deux leds simples dans un seul boitier que l’on peut activer seules ou (…)

Retourner à l'article

Vous répondez à :

Le monde des objets (3) 24 mars 2015 13:26, par ffayolle

Bonjour,
Merci pour ces articles très intéressants sur les objets
Une question : comment intégrer dans une boucle une phase de test faisant appel à x objets identiques ?
Je m’explique :
if (L1.Change()) je fais quelque chose à L1
if (L2.Change()) je fais la même chose à L2
....
if (L10.Change()) je fais la même chose à L10
J’espère avoir été clair !!!
Fabrice

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

5 Messages

  • Le monde des objets (3) 8 mars 2015 17:25, par SavignyExpress

    Bonjour à tous,

    Je rebondis sur le dernier paragraphe de cet article, par ailleurs excellent !

    Je partage le point de vue d’une classe LedBicouleur codée comme une agrégation de 2 objets de la classe Led plutôt que par héritage.

    De mon point de vue, l’héritage ne devrait s’appliquer que si lorsque l’on manipule un objet de la classe Led, on pouvait sans autre lui substituer un objet de la classe dérivée LedBicouleur (principe de substitution de Liskov).

    Répondre

    • Le monde des objets (3) 9 mars 2015 22:03, par Jean-Luc

      Bonsoir,

      mais on peut tout à fait substituer un objet de la classe LedBicouleur à un objet de la classe Led. Seule une des deux DEL sera manipulée via Allumer et Eteindre.

      Répondre

  • Le monde des objets (3) 24 mars 2015 13:26, par ffayolle

    Bonjour,
    Merci pour ces articles très intéressants sur les objets
    Une question : comment intégrer dans une boucle une phase de test faisant appel à x objets identiques ?
    Je m’explique :
    if (L1.Change()) je fais quelque chose à L1
    if (L2.Change()) je fais la même chose à L2
    ....
    if (L10.Change()) je fais la même chose à L10
    J’espère avoir été clair !!!
    Fabrice

    Répondre

    • Le monde des objets (3) 24 mars 2015 15:54, par Jean-Luc

      Bonjour,

      On peut faire ça avec un tableau d’objets :

      Led mesLEDS[10]; // 10 Leds

      Le constructeur ne peut pas avoir d’argument. Il faudra initialiser chaque objet séparément.

      On peut ensuite écrire :

      for (byte numero = 0; numero < 10; numero++) {
        if (mesLEDS[numero].Change()) {
          ...
        }
      }

      Il existe un autre moyen en utilisant une liste chaînée qui est remplie au fur et à mesure que l’on instancie les objets. On peut ensuite exploiter cette liste. C’est un peu plus compliqué à expliquer ici mais c’est plus élégant.

      Répondre

  • Le monde des objets (3) 24 mars 2021 10:20, par fred

    Bonjour,

    Un grand MERCI pour cet article en quatre volumes sur les objets du C++.
    Je commence à y voir plus clair : il me reste à mettre la main à la pâte pour tenter de saisir toutes les subtilités.

    Pour la petite histoire, ce "monde de l’Objet en programmation", je m’y étais plongé avec le turbo pascal (oui, ça fait loin derrière : windows XP n’existait pas encore !) et je n’y avais pas compris grand chose.
    Mais avec Arduino et Teensy, je m’y suis remis à grand peine pour tenter de comprendre comment utiliser les librairies Adafruit et PJRC et éventuellement pour en créer, car certains programmes refusent de fonctionner tel celui qui est censé afficher sur le LCD une image stockée sur la carte SD (embarquée sur le dit LCD) le tout piloté par un Teensy 4.0.

    J’ai du boulot ;o)

    Encore merci.

    Répondre

Rubrique Programmation

Les derniers articles

Les articles les plus lus