II - Les notions de bases

1. Les types de données

1.1. Les entiers
avec short < long et short <= int <= long

1.2. Les nombres réels
La représentation binaire des nombres réels en C++ suivent le standard IEEE754.

1.3. Les entiers non-signés
Par exemple, unsigned char utilise un intervalle de 0 à 255 au lieu de -128 à 127.

1.4. La conversion automatique des types
Une conversion automatique a lieu lors d'opérations mixtes, d'affectations, d'expressions logiques.


Haut de la page

2. Les opérations sur les bits

OpérateurDescription
& et
| ou
^ ou exclusif
<< translation vers la gauche
>> translation vers la droite


Haut de la page

3. Le processus de compilation



4. Quelques programmes simples

Exemple 1

Exemple 2

Exemple 3


Haut de la page

5. Les classes de variables

5.1. auto 5.2. extern
Exemple:
Définition de la fonction

Déclaration de la fonction


Note:
Déclaration : aucun espace mémoire n'est utilisé ; ne fait que dire au compliateur qu'il existe une variable qui doit être définit ailleurs. Il s'agit d'une définition si la variable est initialisée (ie :extern int y = z ;)

Définition : La variable est créée et initialisée. Cela doit se produire une seule fois. Lorsqu'une variable avec le mot clé extern est initialisé, cela devient une définition.

Compilateur linéaire On doit avoir la définition avant d'utiliser la variable ou la fonction.

5.3. static
5.4. const
Exemple:


5.5. register
5.6. volatile
Note: register et volatile ne sont à peu près jamais utilisés.

Haut de la page

6. Les espaces de nom (namespace)




Haut de la page

7. Les abstraction de données

7.1. Les structures

7.2. Les énumérations

7.3. Les unions
Les éléments d'une union partagent le même espace de mémoire.

Haut de la page

8. Les chaine de caractères


Haut de la page

9. Les pointeurs

Un pointeur est une variable conçue pour contenir des adresses. Sa déclaration spécifie le type des éléments sur lesquels le pointeur va pointer.


Haut de la page

10. Les tableaux


Le nom du tableau correspond à l'adresse de ce tableau.
int a[10];
int *p;
p = a; // pointe au début du tableau

Notes:
Il est possible de parcourir un tableau en utilisant strictement des pointeurs.

char *c = "bonjour" déclare une chaine de caractères constituées d'un tableau de caractères. Une chaine est un tableau de caractères se terminant par '\0' (null). Ce code est équivalent à

char c[8] = {'b', 'o', 'n', 'j', 'o', 'u', 'r', '\0'};

string s("bonjour");
char *c = s.c_str();

Haut de la page

11. Les tableaux multidimensionels


Haut de la page

12. Les références


Haut de la page

13. Le passage des paramètres


Haut de la page

14. La conversion

14.1. Réinterprétation de constante: const_cast 14.2. Réinterprétation de pointeur: reinterpret_cast
14.3. Conversion explicite de type: static_cast<type>

Haut de la page

15. L'allocation dynamique de la mémoire

Il n'y a pas de ramasse-miettes (garbage collector) en C++.

Il existe 3 types d'allocation mémoire

Une variable est initialisée en 3 étapes: La destruction se fait en deux étapes:

Haut de la page

16. L'allocation de tableaux multi-dimensionnels

16.1. Allocation dynamique
16.2. Allocation semi-dynamique

16.3. Allocation pleinement dynamique