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.

Cependant, on peut définir des références constantes initialisées ensuite par des constantes, comme dans:
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;

Enfin, les déclarations suivantes sont encore correctes:

float x;
int temp = x;
const int & ri = temp;