C’est un message populaire. Gen 2 808 Posté(e) avril 22, 2016 C’est un message populaire. Partager Posté(e) avril 22, 2016 (modifié) Bonjour.. Suite à de nombreuses demandes concernant l'utilisation de classes, je remarque que pour les néophytes, l'utilisation de classes ressemble plus au parcours du combattant, qu'à une partie de plaisir ! Je vais essayer de vous en faire comprendre non seulement le concept, mais aussi en démystifier les choses qui vous font peurrrrrrrrrr (j'insiste sur le RRRRRRR) Alors commençons par le début, ou débutons par le commencement (c'est vous qui voyez) Qu'est-ce qu'une classe ? Tout d'abord, sachez que les informaticiens sont de grands paresseux, j'ai pas dit fainéants, juste paresseux. Dans la mesure ou réécrire 150x le même code les font ch.... (je vous laisse compléter) Alors pour ne pas sombrer dans la déprime, ou se chopper un cancer des doigts, est apparu le concept de classe.. Concept dominant dans ce qu'on appelle la Programmation Orientée Objets.. Ça se prononce "Pé-eau-eau" la POO est un concept de programmation qui consiste à regrouper des données par affinités ou intérêts, offrir un haut niveau d'abstraction, une simplicité d'utilisation, une lecture aisée du code etc. La POO manipule des classes et joue avec des objets.. Harggggg ca y est vous êtes largués.. Dites pas non, je le vois !! Nous allons donc faire simple, une classe est fournie sous forme de librairie. la librairie est composée généralement de 2 fichiers au minimum. un fichier.h qui correspond au fichier d'entêtes ( h pour header, qui signifie entête dans la langue de Shakespeare) et un fichier.cpp qui contient le code. Le fichier d'entête (*.h) , à pour but de déclarer au compilateur ce qui va suivre et qui est contenu dans le corps du fichier(*.cpp) Pour vous, simples mortels, le fichier .h reprend la description et la syntaxe de tout ce qu'elle vous met à disposition en termes de méthodes et d'attributs (je reviendrai sur la signification de ces deux termes un peu plus tard dans l'exposé) Bon OK tout cela c'est du vent, du bla bla technique, du virtuel, bref .. Passons ! Comment ça marche ? Imaginez-vous une classe comme une usine, prenons le cas de la classe VOITURE. Chaque voiture qui sortira de celle-ci sera un objet voiture. Et rien que des objets voitures, vous n'en verrez ni sortir des hélicoptères, ni des sous-marins et encore moins des soucoupes volantes. Question : Connaissez vous le fonctionnement de toutes les machines sans exceptions qui rentrent dans le processus de fabrication de cette voiture ? La réponse est non.. Mais vous savez conduire la voiture.. Ceci pour vous expliquer le concept d'abstraction.. il est très simple, je ne sais pas comment c'est fait, je m'en fout, et je ne veux peut-être pas le savoir.. Tout ce que je demande, c'est que cela fonctionne. De manière moins imagée, je dirai que c'est mettre à disposition des gens un outils simple pour se faciliter la vie et éviter la redondance de code Cette classe à de nombreux talents cachés.. - Le premier: C'est qu'elle possède un constructeur, le constructeur est une méthode de la classe que vous appelez pour demander à la classe de vous créer un objet. Une méthode est l'équivalent d'une fonction, mais elle est appelée méthode lorsqu'elle provient d'une classe (elle se la pète quoi !) Créer un objet depuis un classe par l'appel de son constructeur s'appelle une instanciation de classe - Le second, C'est que le constructeur permet de passer des paramètres, des fois ils sont facultatifs, mais souvent obligatoires. Pourquoi ? Because, ce sont les valeurs passées en paramètres au constructeur qui détermineront la tronche de votre objet voiture. Bon alors, Si je veux utiliser la classe voiture, je dois la déclarer dans mon code, cela se fait en tout début de mon fichier par la commande #include suivi du nom du fichier.h de la classe #include <voiture.h> ok voila qui est fait... et ensuite ? Il me faut savoir quels sont les méthodes et attributs que me laisse à disposition cette classe. Hein quoi ? c'est quoi un attribut ? ... Patience ça va viendre.. Donc je vais zieuter l’intérieur de mon fichier voiture.h et j'y vois dans la section intitulée public : un truc du genre VOITURE::VOITURE(int cylindree, uint32_t couleur, bool toitOuvrant); cylindree, couleur, toitOuvrant sont les 3 paramètres qu'attend votre constructeur. Et c'est maintenant que les choses deviennent littéralement orgasmiques ! C'est qu'en deux coups de cuillère à pot, vous allez pouvoir créer autant de voitures (objet voiture) que vous désirez et aussi les configurer comme vous l'entendez. Je veux un objet voiture que j'appellerai maTitine avec comme attributs : 1800cc, de couleur rouge(code rgb FF0000), sans toit ouvrant. cela nous donnera voiture maTitine(1800,FF0000,false); et voila c'est pas plus compliqué que cela.. il y a trois choses importantes à retenir: il faut passer les paramètres dans l'ordre de leurs demande, et il faut que le nombre de valeurs passées corresponde au nombre de valeurs attendues et pour finir, que le type de la valeur passée en paramètre correspond exactement à celui attendu si j'écris ceci voiture maTitine(FF0000,False, 1800); le compilateur ne comprendra pas idem pour voiture maTitine(1800); d'autres exemples de création d'un objet voiture voiture VoitureDeMadame(1200,00FF00,true); voiture lachariotte(900,000000,false); voiture voiture1(2000,FFFFFF,false); et ainsi de suite.. Nous verrons (enfin je verrai avec les survivants) dans la seconde partie, comment interagir avec les objets.. nous allons lui chatouiller les attributs, déchiffrer les méthodes etc etc... @pluche. GEN Modifié avril 22, 2016 par Gen 7 3 Lien à poster Partager sur d’autres sites
Messages recommandés