Affichage des articles dont le libellé est CPlusPlus. Afficher tous les articles
Affichage des articles dont le libellé est CPlusPlus. Afficher tous les articles

mercredi 3 mars 2021

Connaissez-vous Arduino IDE for Visual Studio (Visual Micro) ?

Je suis à la recherche du meilleur IDE pour Arduino et je trouve : Arduino IDE for Visual Studio (Visual Micro). Un outil d'édition de construction de déploiement et de débogage pour Arduino entièrement compatible cross plateforme et gestionnaire de Librairie. 

Plusieurs moniteurs série. Projets de code partagé, bibliothèques personnalisées, tests unitaires, GIT, CLI. Matériel GDB et débogage WiFi.

Arduino IDE for Visual Studio (Visual Micro)

Franchement, moi j'ai installé l'extension directement depuis Visual Studio Community 2019 :

Gestion des extensions dans Visual Studio Community 2019
Gestion des extensions dans Visual Studio Community 2019

Et bien c'est la même chose ! 

Donc autant installer l'extension depuis Visual Studio dans le menu Extensions -> Gérer les extensions.

Une fois l'extension installée, il s'agit de créer un bout de code et de téléverser dans la carte Arduino. 

Pour cela, j'ai trouvé l'option pour créer directement le Blink project un classique d'Arduino qui consiste à faire clignoter la LED de la Carte :

Nenu Fichier -> Nouveau projet, dans la liste des Templates de Projet :

Visual Studio s'ouvre avec le code et vous accédez au menu vMicro (comme Visual Micro) avec la gestion des cartes, suivant le kit Arduino que vous avez commandé :

Visual Studio Community avec l'extension ArduinoIDE
Visual Studio Community avec l'extension ArduinoIDE 

Vous vous retrouvez devant l'environnement nécessaire et suffisant pour développer en C++ pour Arduino.

Visual Studio Community avec l'extension ArduinoIDE
Visual Studio Community avec l'extension ArduinoIDE 

A vous de jouer, personnellement, je vais installer Visual Studio Code avec les même extension.

Have fun!


lundi 1 mars 2021

Développer en C++ avec Arduino Software (IDE)

Deux ou trois choses à savoir pour bien démarrer avec l'IDE d'Arduino pour Arduino. Pour savoir par exemple lorsque vous instanciez un projet où se trouvent les fichiers comment sont-ils organisés.

Arduino préférences

Le meilleur moyen de savoir comment Arduino IDE fonctionne c'est d'aller dans ses préférences :

Arduino IDE - Préférences

Vous obtenez ainsi l'emplacement du carnet de croquis et plus de préférences encore dans le fichier suivant : Arduino 15\preference.txt

Arduino IDE - Arborescence des répertoires

On voit également un fichier de Log :


\\AppData\Local\arduino15\logs\application.log

A priori l'application IDE Arduino vient écrire dans ce fichier chaque fois qu'elle s'exécute.

D'autres fichiers json library_index.json ce sont les librairies.

Un autre répertoire important, c'est le répertoire d'installation de Arduino, on y trouve tous les exemples et toutes les librairies pour travailler et l'exécutable :

\\Program Files (x86)\Arduino

Vous souhaitez savoir si votre board est correctement connectée ,c'est la commande : Récupérer les informations de la carte :

Arduino IDE - Outils

Un autre article très important c'est le Moniteur série qui vous permet de visualiser des traces émises par votre programme.

Dans tous les environnements Arduino vous retrouvez les exemples :

Arduino IDE - Exemples

Voilà les commandes de base les reste est dans la doc ;-)

jeudi 25 février 2021

Développer en C++ pour Arduino

Comment je développe et j'implémente mon code compilé sur une carte Arduino ? La programmation en C/C++ est la manière la plus courante de programmer la carte Arduino.

Le logiciel se divise alors en 2 fonctions le setpup() et une fonction loop() qui est la boucle naturelle de l'application.

Programmation en python, il ne s'agit pasz d'une compilation croisée mais d'une application résidente de la carte arduino qui est en communication avec les instructions python.

http://claude.gueganno.free.fr/arch/polyArduino.pdf

Voilà un bon début et un ensemble de généralités pour bien fixer les idées.

Visual Studio Code permet avec trois extension de programmer en C++ pour Arduino...

Pour moi ça commence Ici :

Devenez-pro-en-electronique-PROGRAMMER SON ARDUINO AVEC VISUAL STUDIO

Arduino gestion des ports COM

Je complique ma configuration de développement en essayant d'installer la chaîne de développement Arduino dans une machine du Cloud.

En jouant avec Arduino vous allez devoir maîtriser les affectation des ports COM aussi je vous conseil la page suivante :

http://www.e-novatic.fr/rediriger-les-ports-com-sous-tse/

Redirection des ports COM de l'hôte vers le cloud
Redirection des ports COM de l'hôte vers le cloud

Pour tout savoir sur la commande :

>change port /query

Pour afficher les ports COM et leur caractéristique.

Sur les ports COM de Windows :

Eltima - 2 méthodes pour régler tous les problèmes de ports COM sur Windows 10

Voilà des gens qui maîtrise les ports COM.

Sur l'autorisation des port COM en Remote Desktop :

Modèle d'administration (ordinateurs) - Ne pas autoriser la redirection des ports COM

Il semble bien que ces possibilités de bloquer la redirection des port com date un peu dans le monde Microsoft et que les clefs de registre ne soient plus utilisées :

regedit - Ne pas autoriser la redirection de port COM

Remote Desktop Services - Some USB devices aren't available

On apprend à mettre la ligne :

usbdevicestoredirect:s: RDP

dans le fichier .rdp 

Et à modifier la base de registres mais attention ...

Attention : Sous Windows 7, il est bien sûr impossible de rediriger un port COM vers une machine du cloud le degrés de virtualisation du port COM n'étant pas suffisant.

Visual Studio Code pour Arduino

Installation de l'extension PlatformIO IDE pour VSCode :


Pour pouvoir créer mon premier projet, choix de la carte Arduino : 


Carte Arduino Mega 2560.

PowerShell vs PlaformIO CLI

Il faut faire attention à exécuter les commandes dans le bon environnement. D'ailleurs je travaille avec une machine sous Windows 7 un peu ancien pour PowerShell, j'ai tenté d'installer l'extension proposée mais impossible "une vraie galère" : 

Error installing PowerShell extension on Visual Studio Code

Allez je vous mets le message d'error :

01/03/2021 17:25:51 [NORMAL] - Visual Studio Code v1.53.2 64-bit
01/03/2021 17:25:51 [NORMAL] - PowerShell Extension v2021.2.2
01/03/2021 17:25:51 [NORMAL] - Operating System: Windows 64-bit
01/03/2021 17:25:51 [NORMAL] - Language server starting --
01/03/2021 17:25:51 [NORMAL] -     PowerShell executable: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
01/03/2021 17:25:51 [NORMAL] -     PowerShell args: -NoProfile -NonInteractive -ExecutionPolicy Bypass -Command Import-Module 'd:\Users\Braby\.vscode\extensions\ms-vscode.powershell-2021.2.2\modules\PowerShellEditorServices\PowerShellEditorServices.psd1'; Start-EditorServices -HostName 'Visual Studio Code Host' -HostProfileId 'Microsoft.VSCode' -HostVersion '2021.2.2' -AdditionalModules @('PowerShellEditorServices.VSCode') -BundledModulesPath 'd:\Users\Braby\.vscode\extensions\ms-vscode.powershell-2021.2.2\modules' -EnableConsoleRepl -StartupBanner '=====> PowerShell Integrated Console v2021.2.2 <=====
' -LogLevel 'Normal' -LogPath 'd:\Users\Braby\.vscode\extensions\ms-vscode.powershell-2021.2.2\logs\1614615951-32066405-00df-48dd-bd18-8b2f8655bf801614615914391\EditorServices.log' -SessionDetailsPath 'd:\Users\Braby\.vscode\extensions\ms-vscode.powershell-2021.2.2\sessions\PSES-VSCode-4792-598641' -FeatureFlags @() 
01/03/2021 17:25:51 [NORMAL] -     PowerShell Editor Services args: Import-Module 'd:\Users\Braby\.vscode\extensions\ms-vscode.powershell-2021.2.2\modules\PowerShellEditorServices\PowerShellEditorServices.psd1'; Start-EditorServices -HostName 'Visual Studio Code Host' -HostProfileId 'Microsoft.VSCode' -HostVersion '2021.2.2' -AdditionalModules @('PowerShellEditorServices.VSCode') -BundledModulesPath 'd:\Users\Braby\.vscode\extensions\ms-vscode.powershell-2021.2.2\modules' -EnableConsoleRepl -StartupBanner '=====> PowerShell Integrated Console v2021.2.2 <=====
' -LogLevel 'Normal' -LogPath 'd:\Users\Braby\.vscode\extensions\ms-vscode.powershell-2021.2.2\logs\1614615951-32066405-00df-48dd-bd18-8b2f8655bf801614615914391\EditorServices.log' -SessionDetailsPath 'd:\Users\Braby\.vscode\extensions\ms-vscode.powershell-2021.2.2\sessions\PSES-VSCode-4792-598641' -FeatureFlags @() 
01/03/2021 17:25:51 [NORMAL] - powershell.exe started.
01/03/2021 17:25:51 [NORMAL] - Waiting for session file
01/03/2021 17:29:51 [NORMAL] - Timed out waiting for session file to appear.
01/03/2021 17:29:51 [NORMAL] - Language server startup failed.
01/03/2021 17:29:51 [ERROR] - The language service could not be started: 
01/03/2021 17:29:51 [ERROR] - Error: Timed out waiting for session file to appear.

Ce n'est pas ce qu'il faut faire !

Dès que vous ouvrez Visual Studio Code sur un projet Arduino il faut ouvrir un Terminal PlatformIO CLI en cliquant sur le tout petit bouton en bas dans le Barre Arduino :

Visual Studio Code pour Arduino - Terminal PlatformIO CLI
Visual Studio Code pour Arduino - Terminal PlatformIO CLI

Et vous obtenez le bon environnement pour exécuter toutes les commandes PlatformIO :

Visual Studio Code pour Arduino - Terminal PlatformIO CLI
Visual Studio Code pour Arduino - Terminal PlatformIO CLI

Voilà mon environnement de développement avec VSCode pour Arduino fonctionne est maintenant correctement configurer.

Architecture des chaînes de caractères

C'est une drôle de surprise, vous allez tomber sur :

const __FlashStringHelper *format

Il y en a qui pour gagner de la place vont vouloir stocker des variables dans la mémoire programme :

Architecture Harvard vs Von-Neuman

Du coup les chaînes sont illisibles, il faut des manipulation pour s'y retrouver.

Il vous faudra consulter la page suivante pour découvrir quels types de mémoires sont utilisés sur les boards arduino :


Arduino faire des Log et des Traces

Moi j'ai attaqué par une fonction que j'aime bien écrire :

void log_print(char const *aFormat, ...)
{
    char buffer[256];
    va_list args;

    va_start(args, aFormat);
    vsprintf(buffer, aFormat, args);
    va_end(args);

    Serial.print(buffer);
};

Cela ne fonctionne pas le format des doubles et des floats ne fonctionne pas avec les fonctions de la lib standard du C++.

J'ai trouvé la fonction
\\.platformio\packages\framework-arduino-avr\cores\arduino\Print.cpp
size_t Print::printFloat(double number, uint8_t digits)

qui permet d'afficher un Float par le port série ...

Comment comparer __FlashStringHelper* avec char* on Arduino ?


Pour finalement trouver ce que je cherche à faire :



lundi 4 mars 2019

Comment développer en C++ ?

Je cherche le meilleur moyen de développer en C++ car j'ai compris que les librairies graphiques comme DirectX ou plutôt Direct3D, OpenGL, VCL, FireMonkey et autres sont écrites en langage C++ et je cherche une bonne maitrise du temps réel avec mon application, quel choix faire pour développer en C++ ?

Et oui si vous faites du développement 3D C++ pour des gamers par exemple, vous serez amené à développer en Langage C++ alors j'ai moi même quelques expériences de ce langage mais aujourd'hui je suis perplexe devant les possibilités qui s'offrent à moi et je ne sais quelle option choisir alors faisons un tour rapide de toutes ces possibilités.

J'ai travaillé récemment avec Embarcadero dont j'ai fait une abondante critique. Il possède l'avantage de démarrer un développement rapidement bien plus qu'avec Visual Studio C++ MFC par exemple. Le scandale, c'est que Microsoft conserve MFC et n'a rien fait depuis donc si vous cherchez à instancier un nouveau projet avec Visual Studio vous allez tomber sur MFC ... Grrr pas bon, méchant les MFCs !

Qt/C++ est une bonne alternative, je n'y croyais pas mais c'est d'une prise en main rapide et les contrôles utilisateurs sont intelligents, ils permettent plein de choses rapidement, je vous le conseil.

Je lis cet article : Développez.com - Graphique

Le choix est large mais pas simple, la prise en main d'une librairie graphique c'est un investissement lourd. Moi je parlais des chaines de développement associée ici pas de chaîne mais alors comment cela se passe t-il ? Vous pouvez démarrer avec Eclipse.

Choix d'une application pour bien développer en C++

Que puis je faire avec Visual Studio ? Instancier un nouveau projet Windows Desktop - Assistant Windows Desktop :

Visual Studio un projet en Langage C++

Et Visual Studio me donne les choix suivants :

Visual Studio créer une application en C++

MFC and ATL

Je vous laisse avec la doc MSDN ... Et toutes ces vieilleries Microsoftiennes ...

What's New for Visual C++ in Visual Studio 2017

Si il y a encore du Nouveau en C++ sous Visual Studio 2017 ...

Microsoft - VCSamples - Visual Studio C++

On retrouve ATL CLR MFC plus d'autres exemples

Microsoft - Visual C++ Samples

On remonte encore plus haut dans les samples bien connus de Microsoft

Mais tout ceci ne nous aide pas beaucoup, je suis certain que nous sommes très très nombreux à regretter qu'il n'y ait pas d'alternative à MFC pour développer rapidement des application Desktop en C++. Depuis tout ce temps Microsoft aurait pu faire un effort.

Voilà, je tombe un peu là dans un trou à cause de Microsoft, je pensais trouver une bonne solution pour développer en C++ avec Visual Studio mais la solution moderne est sans doute ailleurs.

La solution moderne pour développer en C++ c'est très certainement Qt/C++.

Solution pour développer en C++

Aujourd'hui il existe une solution pour développer en C++ sans MFC, portable pour toutes les plateformes avec à la base une console et système de menu intelligent pour ajouter rapidement du code un test une fonctionnalité c'est le :

GitHub - Console C++ Starter Kit

Console C++ Starter Kit pour développer facilement en C++

Développez facilement en C++. Pas de MFC , pas de composants graphiques, juste avec une console et système de menus et un peu de code en langage C pour gérer la gestion de la mémoire et faire des Traces dans un display Trace le Reporter.

Venez nous rejoindre dans notre communauté Github.

dimanche 26 mai 2013

Eclipse for C/C++

Vous cherchez à bien démarrer, rapidement à développer en Langage C et C++ sur la plateforme de développement Eclipse. Nous allons voir ce qu'il faut faire.

https://www.eclipse.org/
Eclipse Foundation

Eclipse Download

http://www.eclipse.org/downloads/
Eclipse for C/C++ Windows 32bits 131 Mo

By a book :
http://pothi.com/pothi/book/ebook-meera-ghumalia-cc-software-development-eclipse

Eclipse Juno Documentation
http://help.eclipse.org/juno/index.jsp

Once you installe Double clic on :
\\eclipse-cpp-juno-SR2-win32\eclipse\eclipse.exe

Message de l'exécutable :
A Java Runtime Environment (JRE) or a Java Development Kit (JDK) must be available in order to run Eclipse

Eclipse Installation JRE

Depending on what you want to do with Eclipse. If you intend to use Eclipse for Java development, then you should install a JDK

I will work with Windows, so I install JRE.

http://wiki.eclipse.org/Eclipse/Installation#Install_a_JVM

Vérification de la machine Java Installée

http://java.com/fr/download/installed.jsp

(Version 7 Update 21).

Lancer l'exécution de eclipse.exe

choix du workspace : C:\Documents and Settings\Administrateur\workspace

Create New Project

Création d'un projet GCC Cross Compilation :

C:\Documents and Settings\Administrateur\workspace\Hello World C++ Project Cross GCC

Oups !

Description Resource Path Location Type
Symbol 'cout' could not be resolved Hello World C++ Project Cross GCC.cpp /Hello World C++ Project Cross GCC/src line 13 Semantic Error
Program "g++" not found in PATH Hello World C++ Project Cross GCC [Discovery Options] page in project properties C/C++ Problem
Symbol 'endl' could not be resolved Hello World C++ Project Cross GCC.cpp /Hello World C++ Project Cross GCC/src line 13 Semantic Error
Program "make" not found in PATH Hello World C++ Project Cross GCC C/C++ Problem
Symbol 'std' could not be resolved Hello World C++ Project Cross GCC.cpp /Hello World C++ Project Cross GCC/src line 10 Semantic Error
Program "gcc" not found in PATH Hello World C++ Project Cross GCC [Discovery Options] page in project properties C/C++ Problem

Création d'un projet Microsoft Visual C++ :

C:\Documents and Settings\Administrateur\workspace\Hello World Microsoft Visual C++

Oups !

Description Resource Path Location Type
LNK1104: cannot open file 'kernel32.lib' Hello World Microsoft Visual C++ line 0 C/C++ Problem


Oulala ça pique un peu Eclipse ...
 

vendredi 24 mai 2013

STL - Librairies standards du C++

Qu'est ce qu'il y a dans les libraires standards du C++ ? Il y a un minimum à connaitre pour connaitre les fonctionnalités que l'on peut développer très rapidement simplement en utilisant les librairies standards du C++.

Wikipédia - C++ Standard Library

Containers

<array>new in C++11 fixed sized array.
<bitset>a bit array.
<deque>a double-ended queue.
<forward_list>a singly linked list.
<list>a doubly linked list.
<map>sorted associative array and multimap.
<queue>a priority queue.
<set>sorted associative containers or sets.
<stack>a stack.
<unordered_map>hash tables.
<unordered_set>
<vector>a dynamic array.

General

<algorithm>
<chrono>time elements, duration, time_point, and clocks.
<functional>Provides several function objects, designed for use with the standard algorithms.
<iterator>Provides classes and templates for working with iterators.
<memory>Provides facilities for memory management in C++, including the class template std::unique_ptr.
<stdexcept>Contains standard exception classes such as std::logic_error and std::runtime_error, both derived from std::exception.
<tuple>a tuple.
<utility>working with object pairs (two-member tuples), and the namespace std::rel_ops, for easier operator overloading.
Localization
<locale>Defines classes and declares functions that encapsulate and manipulate the information peculiar to a locale.
<codecvt>code conversion facets for various character encodings.

Strings

<string>
<regex>using regular expressions.
Streams and input/output
<fstream>
<iomanip>formatting integers and the precision of floating point values.
<ios>
<iosfwd>
<iostream>
<istream>
<ostream><sstream><streambuf>

Language support

<exception>the base class of all exceptions thrown by the Standard Library.
<limits>properties of fundamental numeric types.
<new>C++ memory management.
<typeinfo>Provides facilities for working with C++ run-time type information.
Thread support library
<thread>working with threads.
<mutex>mutual exclusion: mutexes, locks, and call once.
<condition_variable>synchronization primitives used to block a thread until notified by some other thread that some condition is met or until a system time is reached.
<future>C++ program can use to retrieve in one thread the result (value or exception) from a function that has run in the same thread or another thread.

Numerics Library

<complex>complex numbers.
<random>(pseudo-)random numbers
<valarray>
<numeric>numeric operations.

Introduction à la STL (Standard Template Librairy)

La librairie nous livre une implémentation des Containers (vecteurs, listes chaînées, ensemble de données ordonnées.

Il est primordiale de choisir parmi les classes de la STL, celle qui est adaptée à votre besoin. En choissant une mauvaise classe trop complexe pour votre besoin, vous perdriez un temps de calcul considérable.

Cet article détaille l'utilisation et la complexité des différents objets de la STL : pair, list, vector, set, map.

CCM - Introduction à la STL en C++ (standard template library)

Autres librairies du C++

  • Apache C++ Standard Library
  • Boost (C++ libraries)
  • C POSIX library
  • C standard library
  • Standard library
  • C++ Technical Report 1
  • Les bons sites en Langage C++

    Personnellement, j'ai toujours trouvé ce que je cherchais, Ici :

    http://www.cplusplus.com/reference/
    CPlusPlus.com

    To Be Continued

    jeudi 23 mai 2013

    Langage C++

    Vous cherchez les caractéristiques principales du Langage C++. Vous développez dans d'autres langages comme VB, Java ou C# alors pour vous remettre rapidement au C++, voici les caractéristiques du Langage C++.

    Introduction

    Langage de programmation créé en 1979 chez Bell Labs par Bjarne Stroustrup, c'est une surcouche du langage C pour en faire un langage Objet.

    Les normes ISO : 1998 (C++98), 2003 (C++03), 2011 (C++11), 2014 (C++14) et 2020 (C++2020) ...

    Documentation complète et à jour du langage C++ est disponible sur la page Wiki :

    cppreference.com

    Vous pouvez, dans l'url, remplacer "en." par "fr." pour avoir le site en français.

    Le standard C ++ 11 est une extension majeure du standard C ++ après C++ 98

    auto: déclaration de type autodéductible par la déclaration

    auto i = 0, d = 0.0; // i is int and d double

    decltype: est utile lors de la déclaration de types difficiles ou impossibles à déclarer à l'aide de la notation standard, comme les types liés à lambda ou les types qui dépendent de paramètres de modèle.

    C++14 est souvent appelée correction de bogue de C++11

    C++03 corrige les rapports de défauts de C++98

    Mots clefs en C++

    Microsoft - Keywords (C++)
    C'est l'entrée de la doc complète, un peu spécifique Microsoft, des explications trop longues.

    Comment Ca Marche - Mots clés du C++
    Les mots clefs communs au C et au C++ sont indiqués en caractères gras.

    Petits rappels sur les mots clefs en C++  :

    auto : Déclare une variable dont le type est déduit de son initialisation. Utile lors de l'utilisation d'expressions lambda.

    friend : Permet à une fonction ou une classe d'accéder aux membres privés et protégés d'une classe.
    Une fonction déclarée friend est une fonction qui n'est pas membre d'une classe mais qui a accès aux membres privés et protégés de la classe.

    mutable : S'applique aux données membres non statiques et non constantes d'une classe. Permet à une fonction déclarée const de modifier cette variable.

    register : Spécifie que la variable doit être stockée dans un registre de l'ordinateur, si possible.

    const_cast : Supprime les attributs const, volatile et __unaligned d'une classe..modifie le cast d'une constante afin de pouvoir la modifier.

    delegate : Déclare un type qui représente un pointeur de fonction.

    Lambda expressions

    Cours en C++

    Cprogramming.com - Learn C and C++ Programming

    En anglais mais c'est une Somme, tout sur la programmation en langage C et C++. Achetez son livre pour soutenir ce travail colossale. Il y a les réponses à toutes les questions des exemples de programmation de projets complets.

    Pour réviser rapidement, des questionnaires (quiz en C en C++), ludiques :

    Cprogramming.com - C++ and Computer Science Quizzes

    The basics of C++ : 1 - C, 2 - C, 3 - A, 4 - B, 5 - C, 6 - B, 7 - D

    Allocation de mémoire en C/C++

    En langage C++, comme en langage C, un très gros problème c'est l'allocation mémoire. Où sont les objets, comment sont-ils instanciés et libérés lorsque le programme n'en a plus besoin, en sachant que toutes allocation en dehors d'une mémoire libre et c'est le crash !

    Developpez.com - Allocation de mémoire sécurisée en C et C++

    C'est un début, il faut redéfinir les fonction d'allocation de base, malloc, realloc et free pour en faire des fonctions qui :

    • gèrent les cas d'échec 
    • lister les pointeurs libres ou non libres
    • allouer et désallouer avec vérification de possibilité

    Attention : haypo s'est fait racheter son nom de domaine "haypocalc.com" pointe maintenant vers tout autre chose ... LoL.

    Même si malloc et free existent en C++, il est préférable d'utiliser new et delete ... surtout si l'on travaille avec des objets.

    En cas d'échec new lève une exception de type std::bad_alloc et le programmeur n'a plus à écrire le test déprécié :

    if( NULL==data ) error();

    Il faut également noter que caster malloc est considéré comme une erreur la méthode utilisée pas les programmeurs expérimentés est :

    double *p;
    p = malloc( n * sizeof (*p ));

    Design Patterns en C++

    Sur ce blog :

    Langage C++ - Design Patterns en C++

    Un sujet indispensbale

    Class, Agrégation, Héritage, Polymorphism

    Pour aller plus loin :

    DriveSodevlog - support C++

    Merci à IUT Informatique Bordeaux 1