Les nouveaux types de variable.
Le type booléen
Le type booléen est un nouveau type de variable en C++. En fait, il correspond aux conditions. Dans un booléen on peut stocker 'true' ou 'false' (true et false sont les valeurs exactes du booléen. En effet, on trouve des fois TRUE, FALSE, yes et no; mais il faut faire attention ce sont des constantes faites avec des #define).
Le nom du type en C++ est bool. Les variables de type booléennes correspondantes ont un état binaire et sont donc utilisées dans les évaluations (les conditions). En effet, les opérateurs de comparaison renvoient une variable de type booléenne. On peut donc faire:
bool x=i < s;
En effet, < renvoie une variable de type bool...
Sur le même principe on peut se servir des booléens dans les structures conditionnelles et ainsi faire:
bool x=i < s;
if (x) { //et oui puisque x est un true ou un false, il peut être directement utilisé.
....
}
Les booléens sont utilisés lorsqu'il s'agit de conserver le résultat d'un test, l'état d'un système qui ne peut prendre que deux positions, si seulement deux états d'un test nous suffisent (par exemple la fonction C standard strcmp() permettant de comparer deux chaînes de caractères renvoie 0, un négatif ou un positif, avec 0 si les deux chaînes sont identiques. Si l'on avait juste besoin de savoir si ces deux chaînes étaient identiques ou non, strcmp aurait pu renvoyer un bool au lieu d'un int.
Les références.
Les références sont très souvent utilisées en C++. Elles fournissent une "alternative" aux pointeurs du C et sont en plus utilisées dans les concepts d'objet. Les références sont des alias dynamiques de variable du même type et permettent ainsi de modifier une variable sans en utiliser le nom.
Le symbole & est utilisé après le type pour déclarer une références. Il faut faire bien attention de ne pas confondre le & de la références, le & de l'adresse, et l'opérateur logique &. On initialise une référence avec une variable du même type que la référence. On peut ainsi faire:
int a=10; int& ref=a; ref=15; //a=15
Les références ne sont pas un outil obligatoire dans la programmation C++ de base. Elles deviennent courantes lors de l'utilisation de classes et de redéfinition d'opérateurs. En outre les références sont également souvent utilisées comme paramètres de fonction. Ainsi il est possible de modifier une variable dans une fonction sans que l'on ait passé l'adresse de la variable à la fonction.
Les programmeurs C/C++ utilisent également souvent les références constantes lors de la passation en argument de grosses structures/classes, car en effet il est bien plus rapide de passer 4 octet (soit la taille d'un pointeur) de variable qu'une structure de 20 octets ou plus (surtout s'il y a une boucle par dessus en plus...)...