Principes de l’orienté objet en C++ : la généricité

Magazine
Marque
GNU/Linux Magazine
Numéro
248
Mois de parution
mai 2021
Spécialités


Résumé

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) :

uint16_t maximum (const uint16_t& kprNb1, const uint16_t& kprNb2) {
 
    return kprNb1 >...
Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Godot : tests unitaires et export Android

Magazine
Marque
GNU/Linux Magazine
Numéro
250
Mois de parution
juillet 2021
Spécialités
Résumé

Dans cette série d’articles [1] [2], nous avons découvert comment créer un jeu aussi complexe qu’un jeu d’aventure avec le moteur de jeu Godot. Dans cette dernière partie, nous verrons la finalisation du jeu : menu, tests et export.

Cotation automatique d’un questionnaire manuscrit

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
115
Mois de parution
juillet 2021
Spécialités
Résumé

Suivant le public visé, l’acquisition de données peut encore se faire via un support papier pour des raisons de commodité. Le problème avec le papier, c’est que l’on peut difficilement automatiser l’analyse des données ! À moins que l’on ne se penche sur une solution mettant en œuvre la reconnaissance de symboles...

Python : comment utiliser les context managers ?

Magazine
Marque
GNU/Linux Magazine
Numéro
250
Mois de parution
juillet 2021
Spécialités
Résumé

Vous les utilisez peut être sans le savoir, ou distraitement : les context managers sont mis en œuvre grâce à la syntaxe with ... as. Ils sont peu utilisés en tant que mécanisme à part entière, mais peuvent avoir un grand intérêt dans l’architecture d’un code. Cet article va vous les présenter et vous expliquer comment les utiliser.

Petite introduction à OpenShift

Magazine
Marque
GNU/Linux Magazine
Numéro
250
Mois de parution
juillet 2021
Spécialités
Résumé

Livrer rapidement les applications et accélérer le cycle de développement logiciel est l’un des objectifs principaux de tout développeur qui souhaite se focaliser sur le développement et la conception de son code, sans avoir à se soucier des infrastructures sous-jacentes. Dans cet article, nous évoquons la plateforme Redhat OpenShift Container Platform, et nous détaillons comment déployer rapidement des applications conteneurisées de façon simple, rapide et automatisée.

Hyperautomatisation d’un serveur d’intégration continue à l’aide d’Ansible et de Podman

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
115
Mois de parution
juillet 2021
Spécialités
Résumé

Dans cette ère de l’automatisation poussée et le déploiement d’applications sur des infrastructures Cloud, la valeur d’un système se juge de plus en plus sur sa capacité à être intégralement mis en place sans intervention humaine. Nous allons donc explorer dans cet article un tel cas d’étude, en proposant d’automatiser entièrement l’installation d’un serveur d’intégration continue (Jenkins) à l’aide d’Ansible et de Podman !