Langage c++

Structure de base du langage C++

Le langage C++ est une amélioration du langage C (le langage C a été misau point par M.Ritchie et B.W.Kernighan au début des années 70). Bjarne Stroustrup, un ingénieur considéré comme l'inventeur du C++, a en effet décidéd'ajouter au langage C les propriétés de l'approche orientée objet. Ainsi, versla fin des années 80 un nouveau langage, baptisé C with classes (C avec des classes), apparaît. Celui-ci a ensuite été renommé en C++, clin d'œil au symbole d'incrémentation ++ du langage C, afin de signaler qu'il s'agit d'un langage Camélioré (langage C+1). 

Le C++ reprend la quasi-intégralité des concepts présents dans le langage C, si bien que les programmes écrits en langage C fonctionnent avec un compilateur C++. En réalité le langage C++ est un sur ensemble du C, il y ajoute, entre autres, des fonctionnalités objet : 

  • L'encapsulation
  • L'héritage(simple et multiple) 
  • Le polymorphisme

Ainsi qu'un ensemble de nouvelles fonctionnalités, parmi lesquelles : 

  • Le contrôle de type 
  • Les arguments par défaut 
  • La surcharge de fonctions 
  • Les fonctions inline…

1. Variables

1.1- Types:

Les données manipulées en langage C++ sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le nombre d'octets) de la donnée ainsi que sa représentation.

Le type des données peut être :

  • Simple;
  • Composé.

Les types élémentaire en langage C++ sont : 

  • int :entiers (au min 16 bits, pour des valeurs 32767), d’autres formats existent: long int (min 32 bits), short int, unsigned int ;
  • float,double et long double : nombres à virgule flottante ;
  • char :caractères (’a’,’b’,. .. ’A’,. . . ,’:’,. . . );
  • bool :booléens (’true’ ou’false). Et: 0 équivalent à false, toutentier non nul équivaut à false)

1.2. Définition des variables 

La syntaxe pour la définition d’une variable est : 

Type var1[=val1], var2[=val2], …;

Exemple

int p=2 ;
double x ;

Une variable peut être déclarée n'importe où dans un bloc pourvu que sa déclaration soit placée avant son utilisation. Contrairement, en langage C, il est obligatoire de la déclarer au début de bloc.

Les valeurs d'initialisations (val1, val2, …) peuvent être des expressions quelconques, elles peuvent faire intervenir des variables déjà déclarées, mais initialisée n'importe où dans un bloc, alors qu'en C, elles ne peuvent faire intervenir que des variables initialisées lors de leurs déclaration au début du bloc.

Code correcte en C et en C++. Dans cet exemple, l'expression d'initialisation de q lors de sa définition fait intervenir la variable n déjà initialisée lors de sa définition au début dubloc.  

  int   n = 2;
  int   q = 2 * n -1;

Code correcte en C++, mais pas en C. Dans cet exemple, la déclaration tardive de q permet de l'initialiser avec une expression qui fait intervenir la variable n dont la valeur n'était pas connue au moment de sa définition au début du bloc. 

 int   n;
 n = 2;  
 int   q = 2 * n -1;

2. Constantes

La Syntaxe d’une constante en langage C++ est : const type nom = val ;

Par exemple: const float Pi = 3,14 ;

Il ne sera pas possible de modifier Pi dans le reste du programme (erreur à la compilation).

3. Chaînes de caractères

Pour le langage C++, il existe une classe string, ce n’est un pas un type élémentaire.

Pourl’utiliser, il faut placer en tête du programme :

# include <string>
  • string s: définit s comme une variable;
  • string s = "bonjour" ;
  • string t= « tout le monde" 
  • s.size() représente la longueur de s;
  • s[i] est le i-èmecaractère de s ( i = 0,1,. . . s.size()-1)
  • s+t estune nouvelle chaîne correspondant à la concaténation de s et t.

4. Tableaux

La syntaxe pour la déclaration des tableaux en langage C++: 

type Nom_du_tableau [Nombre d'éléments] 

  • L'indice du premier élément du tableau est 0 ;
  • Un indice est toujours positif ;
  • L'indice du dernier élément du tableau est égal au nombre d'éléments –1;
  • int tab[5]: tableau de 5 entiers ;
  • tab.size() : correspond à la taille de tab;
  • tab[7] = 6 : affecte la valeur 6 au huitième élément du tableau;
  • intToto[10] = {0}: initialise tous les éléments du tableau à zéro;
  • intTableau [3][4] : définit Un tableau d'entiers positifs à deux dimensions (3lignes, 4 colonnes).

5. Expressions

5.1. Affectation:

En C/C++, l’affectation est une expression. Soient v une variable et expr une expression.

v = expr

Ce  instruction permet d’affecter la valeur de expr à la variable v et retourne la valeur affectée  à v comme résultat.

Par exemple, i = (j = 0) affecte 0 à j puis à i et retourne 0. 

5.2. Opérateurs classiques:

  • Opérateurs arithmétiques : *, +, -, / (division entière et réelle), %(modulo);
  • Opérateurs de comparaison :<, <= , ==, >, >=, !=;
  • Opérateurs booléens:  && représente l’opérateur “ET”, || représente le “OU”, et ! représente le “NON”.

5.3. Pré et Post incrément :

  • ++var incrémente la variable var et retourne la nouvelle valeur (++iéquivaut à i=i+1).
  • var++ incrémente la variable var et retourne l’ancienne valeur (i++équivaut à (i=i+1)-1).
  • --var décrémente la variable var et retourne la nouvelle valeur.
  • var-- décrémente la variable var et retourne l’ancienne valeur.

6. Entrées-Sorties

6.1. Affichage :

Pour utiliser les entrées/sorties en langage en C++, il faut ajouter cette ligne:

# include <iostream>

Pour afficher des données sur l’écran, on utilise le flot de sortie cout

cout désigne un flot de sortie prédéfini associé à la sortie standard (par défaut, c’est l'écran).

cout  <<  expr1  <<  expr2  <<  …  <<  exprn;

  • expr1, expr2, …, exprn sont des expressions de type quelconque (caractère, entier, flottant,chaîne de caractères, pointeur, …).
  • << : est un opérateur binaire dont l'opérande de gauche est un flot desortie (ici cout) et l'opérande de droite une expression de type quelconque.
  • Le résultat fourni par l'opérateur <<, quand-il reçoit un flot en premieropérande est ce même flot.

Exemple:

int  n = 25;
cout   <<  "Valeur  :  ";  // Ces deux instructions peuvent  s'écrire :
cout   <<  n;                        //cout  <<  "Valeur  :  "  <<  n;
  • L'instruction :  cout  <<  "Valeur  :  ";signifie que le flot cout reçoit la valeur du type chaîne de caractères"Valeur  :  ".
  • L'instruction :  cout  <<  "Valeur  :  "  <<  n; est équivalente à :(cout  <<  "Valeur  :  ")  <<  n;

cout est un objet de la classe prédéfinie ostream ;
Le mot clé endl sert à insérer un saut de ligne et à vider le tampon de sortie ;
Pour sauter une ligne, on peut aussi utiliser le caractère '\n'.

6.2. Lecture :

Pour lire des données à partir du clavier sur l’écran, on utilise le flot d’entré cin

cin désigne un flot d'entrée prédéfiniassocié à l'entrée standard (par défaut, c’est le clavier).

cin  >>  var1  >>  var2  >>  …  >>  varn;

  • var1, var2, …, varn sont des variables de type de base quelconque (caractère, entier,flottant, chaînes de caractères).
  • >> : est un opérateur binaire dont l'opérande de gauche est un flotd'entrée (ici cin) et l'opérande de droite est une variable dans laquelle on souhaiteécrire une information.
  • Lerésultat fourni par l'opérateur >>, quand-il reçoit un flot en premieropérande est ce même flot.

7. Commentaires

Les commentaires en langage C++sont représentés par deux barres obliques accolées (//). Le commentaire peut démarrer à n'importe quel endroit et s'étend jusqu'à la fin de ligne.

8. Instructions

8.1. structure conditionnelle IF :

La syntaxe de la structure conditionnelle « if else »dans le langage C++ est : 

  if(expr) instruction
  if(expr) instruction1 else instruction 2

Exemples:

  if (v == 3) i =i+4 ;  
  if ((v==3) && (i<5)) { 
      i=i+4 ;
      v=v*2 ;
  } else v=i ;
  r = r*3 ;

8.2. Boucle FOR :

La syntaxe de la boucle « for » dans le langage C++ est :

for (expr1 ;expr2 ;expr3){
   instruction (s)
}

Exemples 

for(i=0 ;i<235 ;i=i+1) cout<< T[i] ;
for(i=0,j=1 ;i<235 ;i=i+1,j=j+3)cout << T[i][j];

8.3. Boucle WHILE :

La syntaxe de la boucle « while » dans le langage C++ est :

while (expr){ 
   instruction (s)
}

8.4. Boucle DO :

La syntaxe de la boucle « do while » dans le langage C++ est :

do{
   instruction (s) 
}while (expression(s)) ;

Le langage C++ permet l’utilisation d’autre instructions:

  • break provoque l’arrêt de la première instruction do, for, switch ou while englobant.
  • continue provoque (dans une instruction do, for, ou while) l’arrêt de l’itération couranteet le passage au début de l’itération suivante.
switch (expression) {
  case cas1 : liste d’instructions1
  ...
  case casn : liste d’instructionsn
  default: liste d’instructions
}

(exp) ? exp1 : exp2 vaut exp1 si exp est évaluée à vrai et exp2 sinon.

m = (i < j) ? i : j

var op= expr désigne l’expression var = var op expr

(op prend les opérandes{+,-,*,/,%})

                           int i=2,j=34 ;                 int i=2,j=34 ;

                           i += 2 ;                          i = i+2 ;

                           j *= 10 ;                         j = j*10 ;

                           j *= (i++) ;                    j = j*i ;

                           i = i+1 ;

9. Structure générale d’un programme

Unprogramme C++ est reparti dans un ou plusieurs fichiers. Chacun peut contenirdes définitions/déclarations de fonctions, des définitions de types et desdéfinitions de variables globales.

Il existe une seule fonction main: c’est la fonction qui sera exécutée après lacompilation.

Leprofil de main est : int main() ou void main().

10. Portée, visibilité et durée de vie des variables

10.1. Portée:

La portée d’un identificateur correspond aux parties du programme où cetidentificateur peut être utilisé sans provoquer d’erreur à la compilation.

La portée d’une variable globale ou d’une fonction globale est égale au programme.

La portée d’une variable locale va de sa définition jusqu’`a la fin de la premièreinstruction composée ({...}) qui contient sa définition.

Deux variables peuvent avoir le même nom mais dans ce cas, elle doivent avoir deux port´es différentes.

Exemple :

  {
     int i=3 ;
  {
     int i=5 ;
     cout<< i ; // affiche 5
  }
  cout<< i ; // affiche 3  }

Les deux variables ont des portées différentes 

10.2. Visibilité:

La visibilité d’une variable dit quand elle est accessible;

La durée de vie d’une variable correspond à la période depuis créationé sa destruction.

L’espace mémoire d’une variable locale déclarée static est alloué une seule fois et n’est détruit qu’à la fin du programme !

  void Test(int v)
  {
     static int compteur=0 ;
     compteur++ ;
     cout << compteur << "-eme appel de Test"<< endl ;
     cout << " v = " << v<< endl ;
  }

Sa duréee de vie est celle du programme.


Partager ce cours avec tes amis :
Rédigé par Mostafa Sedoki
Computer science teacher and the founder of the e-learning platform "developpement-informatique.com", my mission is to provide high-quality courses for free to all computer science students and teachers

Cours Similaires :