4. LES SPECIFICITES DU C++
L'objectif de ce chapitre est d'apprendre aux étudiants les spécificités donc dispose le C++, qui ne sont, pourtant, pas axées sur la programmation orientée objet. Il s'agit essentiellement des suivantes:
4-1. Commentaire de fin de ligne
En plus des commentaires du C standard, le C++ dispose d'une nouvelle forme de commentaires appelés commentaire de fon de ligne (//). Tout ce qui est situé entre // et la fin de ligne est un commentaire.
4-2. Notion de références
En plus des pointeurs, le C++ permet de créer des références (synonymes d'identificateurs), permettant de manipuler une variable sous un nom autre que celui sous lequel elle a été déclarée. Toute référence doit se référer à un identificateur. Il est donc impossible de déclarer une référence sans l'initialier. De plus, la déclaration d'une référence ne crée pas un nouvel objet. Les références se rapportent à des identificateurs déjà existants. La syntaxe de déclaration d'une référence est la suivante:
type & refVar = referencedVariable;
Après cette déclaration, refVar peut être utilisé partour où referencedVariable peut l'être. Ce sont des synonymes. Voir l'exemple suivant:
int i=2;
int & ri=i; //référence sur la variable i
ri = ri + i; //double la valeur de i (et de ri)
4-2-1. Initialisation de référence
Examinons les instructions suivantes:
int & ri = i; //déclaration de référence suivie d'une initialisation
int & ri; //incorrect, il est impossible de déclarer une référence sans l'initialiser
int & ri = i; //une fois déclarée (initialisée), la référence ne peut être modifiée. Si, après déclaration, on écrit:
i = j; //il s'agit d'affecter j à l'emplacement référencé par i, et non de la modification de la référence i.
int & ri = 3; //incorrecte; on ne peut initialiser une référence avec une constante.
const int é ri=3; /* correcte: crée une variable temporaire contenant la valeur 3 et place sa référence dans ri */.
Cette déclaration serait équivalente aux deux suivantes:
int tem=3;
const int & ri = temp;
float x;
int temp = x;
const int & ri = temp;