Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Langage C++
  3. Premiers programmes
Extrait - Langage C++ De l'héritage C au C++ moderne (avec programmes d'illustration) (2e édition)
Extraits du livre
Langage C++ De l'héritage C au C++ moderne (avec programmes d'illustration) (2e édition) Revenir à la page d'achat du livre

Premiers programmes

C inclus en C++

Le langage C++ à l’origine spécifie une compatibilité descendante avec le langage C, aussi retrouvons-nous à l’identique des fondamentaux incontournables :

  • Fonction main

  • Variables simples, char, short, int, long, long long, float, double, signed, unsigned

  • Opérations arithmétiques +, -, *, /, %

  • Opérations bit à bit &, |, ^, ~

  • Opérateurs de comparaison <, >, <=, >=, !=, ==

  • Sauts conditionnels if, if-else, if-else if-else

  • Branchements switch, goto

  • Tests multiconditions &&, ||

  • Boucles while, do-while, for

  • Fonctions retour et paramètre

  • Structures struct

  • Définition de types typedef

  • Tableaux [ ]

  • Pointeurs &, ,, ->, [ ], NULL, void*

Les principes et la syntaxe restent rigoureusement les mêmes. Seules quelques nouveautés apportées au C à partir de la révision C11 du langage, le type natif _Bool par exemple, ne sont pas directement traduisibles en C++. Toutefois, ces rares nouveautés divergentes ne remettent pas en cause le principe de compatibilité descendante de C vers C++. Un programme C peut donc être compilé en C++. En revanche, l’inverse n’est pas vrai. Le C++ dispose d’autres fonctionnalités intégrées dans le langage et utilise également de nombreux outils développés sous forme de classes, d’objets et de fonctions rangés dans de nombreuses bibliothèques.

Les apports du C++ se répartissent en quatre catégories :

  • Premièrement, les fonctionnalités intégrées dans le langage qui, en quelque sorte, améliorent les possibilités syntaxiques du C, comme par exemple la surcharge des fonctions, les opérateurs new et delete, les espaces de noms ou les modules.

  • Deuxièmement, des moyens puissants de structuration des programmes...

Premiers programmes

1. La fonction main() : entrée du programme

Pour le système d’exploitation, un exécutable se traduit par une pile d’instructions avec une entrée, un début, qui est appelé la « tête » du programme. Pour le programmeur, c’est la fonction main(). Ainsi, tout programme commence par la fonction main().

Dans un programme, une fonction est toujours désignée par un nom et des parenthèses à droite. Par exemple, la fonction maFonct : maFonct() ou la fonction main : main().

Voici le main() standard, commun à C et C++. Ce programme est complet. Une fois compilé en C ou en C++, il s’exécute, mais il ne fait rien.

int main()      // tête ou entrée du programme, 
{               // ouverture bloc des instructions du programme 
  
   /* valeur de retour de la fonction main 
      qui indique un bon déroulement du programme. */ 
      return 0;  
  
}               // fermeture bloc des instructions du programme 

Les commentaires // et /*...*/

Le signe // dans un programme indique que tout ce qui suit sur la ligne (et sur la ligne uniquement) est un commentaire et ne sera pas pris en compte au moment de la compilation, c’est-à-dire lors de la fabrication de l’exécutable en langage machine. Cela permet d’introduire des explications dans le code source pour le rendre plus clair et compréhensible.

De même, tout le texte ou le code qui se trouve entre /* et */ est mis en commentaire. 

Point-virgule pour clore une instruction

Toutes les instructions...

Bibliothèques, espaces de noms, instruction using

1. Bibliothèque <iostream>, directive #include

<iostream> est une des nombreuses bibliothèques standards du C++. Elle permet d’utiliser cout<< et cin>> qui, en réalité, sont respectivement des objets des classes <ostream> et <istream>. Les flux de caractères associés au terme de stream regroupent une architecture de plusieurs classes. Nous ne les détaillerons pas dans cet ouvrage, mais en voici un aperçu recopié sur http://cplusplus.com, utile éventuellement plus tard afin de s’y retrouver pour se documenter :

images/36RI01.png

Nous pouvons inclure une bibliothèque dans un projet grâce à la directive #include :

#include <iostream> 

Inclure <iostream> inclut aussi automatiquement les bibliothèques <ios>, <streambuf>, <istream>, <ostream> et <iosfwd>. Sous Visual Studio, l’inclusion de <iostream> provoque encore d’autres inclusions visibles dans le dossier de dépendances externes du projet.

Une bibliothèque C++ contient non seulement des fonctions et des définitions de types comme en C, mais aussi et surtout des classes. Les classes, spécifiques de la programmation objet, constituent un apport important du C++ (se reporter au chapitre Classes).

Le fichier d’en-tête <iostream> est équivalent à <iostream.h>. Le .h, nécessaire pour toute inclusion en langage C, a disparu en C++ avec la norme ISO/IEC 14882-1998. Les deux écritures fonctionnent encore sur la plupart des compilateurs, mais c’est l’écriture récente sans .h qu’il faut adopter. 

2. Espace de noms et instruction using

Un espace de noms (namespace) permet de regrouper sous un seul nom un ensemble de fichiers d’en-tête...

Activer C++20

Le C++ dans son ensemble reste stable, mais il est régulièrement actualisé. Une mise à jour C++ a lieu tous les trois ans depuis 2011 : 2014, 2017, 2020, 2023… Lors de ces mises à jour, des fonctionnalités apparaissent, d’autres sont considérées obsolètes et d’autres disparaissent. De ce fait, les compilateurs doivent pouvoir compiler des programmes utilisant des versions différentes du C++. En général, chaque compilateur donne la possibilité de spécifier la version C++ à utiliser.

Par exemple, Visual Studio est réglé par défaut sur C++14, mais les expressions lambda, les modules, les concepts, certaines opérations réalisées à l’aide du spécificateur auto, c’est-à-dire un grand nombre des fonctionnalités décrites dans ce livre, utilisent les versions ultérieures de C++ (C++17 et C++20). Pour accéder aux dernières fonctionnalités du C++, le projet courant doit accepter la norme C++20.

Dans Visual Studio le changement s’opère de la façon suivante :

 Cliquez avec le bouton droit de la souris sur le projet dans l’Explorateur de solutions.

images/37RI01.png

 Dans le menu déroulant qui s’ouvre, sélectionnez l’item Propriétés tout en bas.

 Dans la fenêtre des propriétés qui s’ouvre, sur la gauche dans Propriétés de configuration, allez à C/C++ et sélectionnez Langage.

 Dans la partie droite de la fenêtre, allez à Norme du langage C++ et sélectionnez Norme ISO C++20.

images/38RI01.png