Caractéristiques du langage C++
Le C++ est un langage compilé
Pour exécuter un programme écrit, le code source doit subir deux étapes de traitement. Ce que vous écrivez n’est qu’un texte de caractères incompréhensible pour l’ordinateur. Le compilateur transforme ces symboles textuels en instructions lisibles par le processeur : le langage machine, seul ensemble de commandes que le CPU peut exécuter ligne par ligne.
- Compilation : Le compilateur lit les fichiers source et génère des fichiers objet ;
- Édition de liens : L’éditeur de liens assemble plusieurs fichiers objet pour produire un programme exécutable.
Un projet C++ est généralement composé de plusieurs fichiers source. Voici le schéma du flux de traitement :

L’exécutable généré est lié à un matériel et un système d’exploitation spécifiques ; il ne peut pas fonctionner directement sur plusieurs plateformes (un programme Mac ne se lance pas directement sur un ordinateur Windows).
La portabilité dont on parle souvent pour le C++ désigne la portabilité du code source : un même ensemble de sources peut être compilé séparément sur plusieurs systèmes et fonctionner normalement.
Autrement dit, l’exe compilé sous Windows ne fonctionnera pas si on le copie sur un Mac. Il faut transférer le texte source identique (fichiers .cpp et .h) sur le Mac, puis le compiler avec le compilateur C++ de Mac pour obtenir un programme compatible avec macOS.
La norme ISO C++
La norme ISO C++ définit deux grandes parties
- Fonctionnalités du cœur du langage : capacités natives du langage, par exemple les types primitifs
char/int, les bouclesfor/while, etc. - Composants de la bibliothèque standard : ensemble d’outils officiel fourni avec le langage, conteneurs comme
vector/map, affichage avec<<, lecture de saisie avecgetline()et autres opérations d’E/S.
L’intégralité de la bibliothèque standard est implémentée en C++ pur et intégrée nativement dans tous les compilateurs majeurs ; seuls très peu de traitements bas niveau (ex: changement de contexte de thread) utilisent un peu de langage machine.
Pourquoi une bibliothèque standard est-elle nécessaire ? La bibliothèque standard est comparable aux SDK dont on parle aujourd’hui. Son objectif est d’alléger la charge de travail des développeurs C++. Si chaque fonction basique devait être réécrite par chaque programmeur, très peu de personnes utiliseraient ce langage. Par exemple, afficher une ligne de texte dans la console représenterait une charge de travail énorme si chaque développeur codait cette logique lui-même. Pour résoudre ce problème, les concepteurs du C++ ont écrit un ensemble de code préfabriqué, compilé sous forme de bibliothèques (.lib) et mis à disposition des développeurs. En clair, cela évite de réinventer la roue, augmente considérablement la productivité et attire davantage d’utilisateurs.
La bibliothèque standard ne repose pas sur des syntaxes obscures ou des astuces magiques : elle est écrite en C++ standard. Vous pouvez lire tout son code source et créer des outils similaires sur mesure.
Le C++ est un langage à typage statique
Pour toutes les variables, valeurs, identifiants et expressions, le compilateur doit connaître explicitement leur type à l’endroit où ils sont utilisés dans le code. Le type d’un objet détermine directement les opérations qu’il peut supporter.
Avantage principal du typage statique : la vérification des types intervient au moment de la compilation. De nombreuses erreurs sont interceptées par le compilateur pendant l’écriture du code, au lieu de provoquer un plantage à l’exécution ; cela allie sécurité et performance. Concrètement, quand le compilateur traduit votre code en langage machine, il signale une erreur si des types sont incompatibles. Par exemple, stocker une chaîne de caractères (nom) dans une variable entière prévue pour l’âge générera une erreur de compilation. Les erreurs de compilation sont corrigables immédiatement par le développeur ; les erreurs d’exécution sont beaucoup plus compliquées à gérer, surtout lorsque le logiciel est déjà distribué aux utilisateurs finaux.