La programmation orientée objet obéit à des principes. Les 4 principaux sont l’encapsulation, l’héritage, le polymorphisme et la généricité. Dans un premier article, nous avons évoqué l’encapsulation, puis l’héritage et le polymorphisme dans un deuxième. Ce troisième et dernier article traite de la généricité.
La généricité en C++ est déclinée sous plusieurs formes. Aborder toutes ces différentes formes est une gageure dans un court article et seules quelques-unes de ces formes seront donc abordées. Il s’agit principalement de placer le développeur peu au fait de cette technique (je devrais dire ces techniques) sur la voie. Celles ou ceux qui voudront aller plus loin – bien plus loin (comme la très intéressante conception de classes basée sur des stratégies ou la métaprogrammation [1]) – pourront se documenter avec l’excellent livre (en anglais) d’Andrei Alexandrescu [2].
1. Fonctions génériques
1.1 Tentons le maximum
Pour aborder les fonctions génériques, commençons de manière très classique par le maximum de deux nombres. Nous allons faire une première hypothèse en prenant des nombres entiers non signés et codés sur 2 octets (type uint16_t) :
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première