La programmation orientée objet en C++

Tout savoir sur la programmation orientée objet avec le langage C++

Définitions et rappels

Avant d’entrer dans le vif du sujet, il convient de rappeler certaines notions importantes lorsqu’on parle de programmation informatique en C++.

Définitions

La Programmation Orientée Objet est un paradigme qui existe dans de nombreux langages comme le C++, le C# ou l’Eiffel et même en Javascript (bien qu’il soit plus compliqué). Le noyau dur de la Programmation Orientée Objet se retrouvent en deux termes : Modèle et Instance

Le Modèle représente un ensemble de données, de fonctions membres et de méthodes.

L’Instance quant à elle représente l’objet créé à partir d’un modèle.

Rappels importants

Pour bien comprendre l’importance de la Programmation Orientée Objet dans la programmation informatique de notre ère, voici quelques rappels de notions à assimiler avant de se lancer dans le retour d’expérience à la suite.

Rappelons d’abord l’importance de la notion d’héritage. Celle-ci se divise en deux formes.

  1. héritage de classe concrète —> concrète ou abstraite —> concrète. Dans ces deux cas là, les propriétés et les données (fonction membres et méthodes) qui seront visibles sur les classes filles. 

  2. L’autre forme de l’héritage est intitulé héritage en interface

Ensuite intervient la notion d’Override. C’est à dire la possibilité de changer le fonctionnement d’une instance en proposant une implémentation différente dans une classe fille. Pour information, la méthode est une fonctionnalité que l’on peut override.

Enfin, une interface rassemble l’ensemble de méthodes Pure Virtuelles, c’est à dire des méthodes qui ne propose pas d’implémentations.

Retour d'expérience

Ce retour d’expérience vous est proposé par notre Insider Nicolas. 

D’après l’un de mes plus récents projets, j’ai eu l’occasion de travailler en C++ sur le Blog Project Framework (Open Source) sur lequel vous pouvez d’ailleurs apporter votre contribution. L’idée est simple : simplifier la bibliothèque standard du C++. Basé principalement sur de la R&D par l’intégration de fonctionnalités non présentes dans la bibliothèque standard commme l’ajout de classes utilitaires à la gestion d’objets mathématiques notamment (quaternion, vecteur, matrice).

N’hésitez pas à poser vos questions sur ce projet en commentaires.

Pourquoi utiliser la POO ?

La question peut se poser même si les arguments en sa faveur sont considérables. Commençons par expliquer que ce formidable outil pour le développement permet de faire des API quasiment parfaites. Avec ces dernières, un utilisateur sans connaissances poussées peut sans mal faire usage de l’Orienté Objet afin d’être guidé complètement et faciliter l’application de formules par l’utilisation des rotations de matrice voire des calculs vectoriels (class : vector).

Il est aisé d’aller encore bien plus loin. Il est notamment possible de faire ce que l’on appelle des ECS (Entity Component System) avec des templates (ce qui est particulièrement agréable à utiliser.)

La POO peut cependant être facilement biaisée par l’ensemble des architectures qui la compose. Pourquoi ? En C++, il existe tant de paradigmes qu’il est très facile de créer des architectures trop compliquées à maintenir. 

Exemple : en C++ il est très facile de ne pas respecter les principes SOLID en s’écartant des méthodologies Agiles et donc arriver à un résultat inmaintenable. Cela arrive souvent chez les débutants en C++ qui malheureusement partent sur des bases de C et rajoute des objets de la STL en pensant que cela suffit à faire de l’Orienté Objet.

 

Notez cet article
0/5

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *