lit sur le flot cin (connecté par défaut à l’entrée standard stdin) des informations de l’un
des types char, short, int, long, float, double ou char * (on sait distinguer les attributs de
signe ; en revanche, les pointeurs ne sont pas admis). Les conventions d’analyse des
caractères lus sont comparables à celles de scanf, avec cette principale différence que
la lecture d’un caractère commence par sauter les espaces blancs (espace, tabulation
horizontale, tabulation verticale, fin de ligne, changement de page).
Nouvelle forme de commentaires
Les deux caractères // permettent d’introduire des commentaires de fin de ligne : tout
ce qui suit ces caractères, jusqu’à la fin de la ligne, est considéré comme un
commentaire.
Emplacement libre des déclarations
En C++, il n’est plus nécessaire de regrouper les déclarations en début de fonction ou
en début de bloc. Il devient ainsi possible d’employer des expressions dans des
initialisations, comme dans cet exemple :
int n ;
.....
n = ... ;
.....
int q = 2*n - 1 ;
.....
Ces possibilités s’appliquent également aux instructions structurées for, switch, while et
do...while, comme dans cet exemple :
for (int i=0 ; ... ; ...) // la portée de i est limitée au bloc qui suit
{ .....
}
La transmission par référence
En faisant suivre du symbole & le type d’un argument dans l’en-tête (et dans le
prototype) d’une fonction, on réalise une transmission par référence. Cela signifie que
les éventuelles modifications effectuées au sein de la fonction porteront sur l’argument
effectif de l’appel et non plus sur une copie. On notera qu’alors l’argument effectif doit
obligatoirement être une lvalue du même type que l’argument muet correspondant.
Toutefois, si l’argument muet est, de surcroît, déclaré avec l’attribut const, la fonction
reçoit quand même une copie de l’argument effectif correspondant, lequel peut alors
être une constante ou une expression d’un type susceptible d’être converti dans le type
114
des types char, short, int, long, float, double ou char * (on sait distinguer les attributs de
signe ; en revanche, les pointeurs ne sont pas admis). Les conventions d’analyse des
caractères lus sont comparables à celles de scanf, avec cette principale différence que
la lecture d’un caractère commence par sauter les espaces blancs (espace, tabulation
horizontale, tabulation verticale, fin de ligne, changement de page).
Nouvelle forme de commentaires
Les deux caractères // permettent d’introduire des commentaires de fin de ligne : tout
ce qui suit ces caractères, jusqu’à la fin de la ligne, est considéré comme un
commentaire.
Emplacement libre des déclarations
En C++, il n’est plus nécessaire de regrouper les déclarations en début de fonction ou
en début de bloc. Il devient ainsi possible d’employer des expressions dans des
initialisations, comme dans cet exemple :
int n ;
.....
n = ... ;
.....
int q = 2*n - 1 ;
.....
Ces possibilités s’appliquent également aux instructions structurées for, switch, while et
do...while, comme dans cet exemple :
for (int i=0 ; ... ; ...) // la portée de i est limitée au bloc qui suit
{ .....
}
La transmission par référence
En faisant suivre du symbole & le type d’un argument dans l’en-tête (et dans le
prototype) d’une fonction, on réalise une transmission par référence. Cela signifie que
les éventuelles modifications effectuées au sein de la fonction porteront sur l’argument
effectif de l’appel et non plus sur une copie. On notera qu’alors l’argument effectif doit
obligatoirement être une lvalue du même type que l’argument muet correspondant.
Toutefois, si l’argument muet est, de surcroît, déclaré avec l’attribut const, la fonction
reçoit quand même une copie de l’argument effectif correspondant, lequel peut alors
être une constante ou une expression d’un type susceptible d’être converti dans le type
114
