Menu

Qu'est-ce que le C++ ? Le langage, sa vitesse et son environnement d'exécution

Ce qu'est réellement le C++, pourquoi il se compile directement en code machine natif et les types de logiciels haute performance que l'on construit avec lui.

Cette page contient des éditeurs exécutables - modifiez, exécutez et voyez la sortie instantanément.

Le C++ en une phrase

Le C++ est un langage de programmation à typage statique et compilé qui transforme votre code source directement en code machine natif. Ce seul choix de conception - pas d'interpréteur, pas de machine virtuelle entre votre programme et le processeur - est la raison pour laquelle le C++ est l'un des langages les plus rapides que vous puissiez écrire, et pourquoi il alimente les logiciels qui ne peuvent absolument pas être lents.

Voici l'incontournable premier programme. Exécutez-le ici même :

Il y a plus de structure ici que dans un langage de script, et c'est volontaire - le C++ vous donne un contrôle précis en échange d'être explicite. Nous décortiquerons chaque morceau de tout cela au fil des prochaines pages.

Pourquoi le C++ est rapide

La plupart des langages de script exécutent votre code via un interpréteur ou une machine virtuelle qui lit et exécute les instructions au moment de l'exécution. Le C++ saute tout cela :

  1. Un compilateur (comme g++ ou clang++) lit votre source .cpp et la traduit en instructions machine pour un processeur et un système d'exploitation précis.
  2. Le résultat est un exécutable autonome que le processeur exécute directement - rien ne se trouve entre votre code et le matériel.

Comme aucune traduction n'a lieu pendant l'exécution du programme, les programmes C++ démarrent instantanément et tournent à la pleine vitesse du processeur. Vous obtenez aussi un contrôle fin de la mémoire et du matériel que les langages de plus haut niveau vous cachent délibérément.

Le compromis : ce code machine est construit pour une seule plateforme. Un exécutable compilé sous Windows ne fonctionnera pas sur un Mac - vous recompilez la source pour chaque cible. (À comparer avec Java, qui se compile en bytecode portable s'exécutant sur n'importe quelle JVM.)

Typage statique et multiparadigme

Deux propriétés façonnent l'apparence et la sensation du code C++.

Typage statique signifie que chaque variable possède un type connu à la compilation, et le compilateur vérifie vos types avant même que le programme ne s'exécute :

count est un int toute sa vie ; tenter d'y stocker "hello" ne compilerait pas. Cela détecte toute une catégorie d'erreurs tôt, au prix de devoir taper davantage au départ.

Multiparadigme signifie que le C++ ne vous impose pas un seul style. Vous pouvez écrire du code procédural simple, organiser la logique en classes (orienté objet) ou utiliser des templates pour du code générique et réutilisable. La plupart des vrais programmes mélangent les trois. Cette flexibilité est puissante, mais elle signifie aussi que le C++ a une vaste surface à apprendre - nous l'aborderons un concept à la fois.

À quoi sert le C++

Le C++ apparaît partout où la performance et le contrôle ne sont pas négociables :

  • Moteurs de jeu - Unreal Engine, le cœur d'Unity et la majeure partie du code des jeux AAA.
  • Logiciels système - systèmes d'exploitation, pilotes de périphériques et navigateurs comme Chrome et Firefox.
  • Services haute performance - bases de données, systèmes de trading et infrastructures de recherche où les microsecondes comptent.
  • Embarqué et matériel - firmware pour voitures, drones, dispositifs médicaux et IoT.

Si un logiciel doit être rapide, tenir dans une mémoire restreinte ou dialoguer directement avec le matériel, il y a de fortes chances qu'il soit écrit en C++.

Le C++ n'est pas le C (mais il y a commencé)

Le C++ est né du C dans les années 1980 sous le nom de « C avec classes », et il reste en grande partie un sur-ensemble - beaucoup de code C valide compile en tant que C++. Mais le langage a énormément grandi depuis.

Le C++ ajoute la programmation orientée objet, les templates pour le code générique, les références, les exceptions et une riche bibliothèque standard pleine d'outils prêts à l'emploi. Cet extrait en utilise un, vector - un tableau redimensionnable qui gère sa propre mémoire, quelque chose qu'il faudrait construire à la main en C :

Le C++ moderne (les normes C++11, C++17 et C++20) s'appuie fortement sur des outils comme ceux-ci pour rendre le langage plus sûr et plus expressif que ses racines en C. Une erreur courante chez les débutants est d'écrire du C++ à la manière du C - mémoire manuelle, tableaux bruts partout - alors que la bibliothèque standard résout déjà le problème pour vous. Nous privilégierons le style moderne tout au long de cette documentation.

Suivant : Installer le C++

Pour écrire et exécuter du C++ sur votre propre machine, il vous faut un compilateur - généralement g++ (qui fait partie de GCC), clang++ ou la chaîne d'outils MSVC sous Windows. La page suivante détaille l'installation de l'un d'eux et la confirmation qu'il fonctionne depuis votre terminal.

Questions fréquentes

À quoi sert le C++ ?

Le C++ alimente les logiciels où la vitesse et le contrôle comptent : moteurs de jeu (Unreal, le cœur d'Unity), systèmes d'exploitation, navigateurs (Chrome, Firefox), bases de données, systèmes de trading et appareils embarqués. Sa force est de s'exécuter au plus près du matériel tout en offrant des fonctionnalités de haut niveau comme les classes, les templates et la bibliothèque standard.

Le C++ est-il compilé ou interprété ?

Le C++ est compilé. Un compilateur comme g++ ou clang++ traduit votre code source directement en code machine natif pour un processeur et un système d'exploitation précis, produisant un exécutable autonome. Il n'y a ni interpréteur ni machine virtuelle entre votre programme et le processeur, et c'est pour cela que le C++ est si rapide.

Quelle est la différence entre le C et le C++ ?

Le C++ a débuté comme « C avec classes » et reste en grande partie un sur-ensemble du C, si bien que la plupart du code C compile en tant que C++. Les grands ajouts sont la programmation orientée objet (classes et héritage), les templates, la bibliothèque standard (conteneurs comme vector et map), les références, les exceptions et de nombreuses fonctionnalités de sûreté et de confort absentes du C.

Coddy programming languages illustration

Apprendre à coder avec Coddy

COMMENCER