En C++, une fonction sans valeur de retour se définit (en-tête) et se déclare (prototype)
obligatoirement à l’aide du mot-clé void, comme dans :
void fct (int, double) ;
En C, l’emploi du mot-clé void était, dans ce cas, facultatif.
Le qualificatif const
En C++, un symbole global déclaré avec le qualificatif const :
a une portée limitée au fichier source concerné, tandis qu’en C il pouvait
éventuellement être utilisé dans un autre fichier source (en utilisant le mot-clé
extern) ;
peut être utilisé dans une expression constante (calculable au moment de la
compilation), alors qu’il ne pouvait pas l’être en C ; ce dernier point permet
notamment d’utiliser de tels symboles pour définir la taille d’un tableau (en C, il
fallait obligatoirement avoir recours à une définition de symboles par la directive
#define).
Le type void *
En C++, un pointeur de type void * ne peut pas être converti implicitement lors d’une
affectation en un pointeur d’un autre type ; la chose était permise en C. Bien entendu, en
C++, il reste possible de faire appel à l’opérateur de cast.
Nouvelles possibilités d’entrées-sorties
C++ dispose de nouvelles facilités d’entrées-sorties. Bien qu’elles soient fortement
liées à des aspects P.O.O. (surdéfinition d’opérateur en particulier), elles sont
parfaitement utilisables en dehors de ce contexte. C’est tout particulièrement le cas des
possibilités d’entrées-sorties conversationnelles (clavier, écran) qui remplacent
avantageusement les fonctions printf et scanf. Ainsi :
cout << expression 1 << expression 2 << ......... << expression n
affiche sur le flot cout (connecté par défaut à la sortie standard stdout) les valeurs des
différentes expressions indiquées, selon une présentation adaptée à leur type (on sait
distinguer les attributs de signe et on peut afficher des valeurs de pointeurs). De même :
cin >> lvalue 1 >> lvalue 2 >> ......... >> lvalue n
113
obligatoirement à l’aide du mot-clé void, comme dans :
void fct (int, double) ;
En C, l’emploi du mot-clé void était, dans ce cas, facultatif.
Le qualificatif const
En C++, un symbole global déclaré avec le qualificatif const :
a une portée limitée au fichier source concerné, tandis qu’en C il pouvait
éventuellement être utilisé dans un autre fichier source (en utilisant le mot-clé
extern) ;
peut être utilisé dans une expression constante (calculable au moment de la
compilation), alors qu’il ne pouvait pas l’être en C ; ce dernier point permet
notamment d’utiliser de tels symboles pour définir la taille d’un tableau (en C, il
fallait obligatoirement avoir recours à une définition de symboles par la directive
#define).
Le type void *
En C++, un pointeur de type void * ne peut pas être converti implicitement lors d’une
affectation en un pointeur d’un autre type ; la chose était permise en C. Bien entendu, en
C++, il reste possible de faire appel à l’opérateur de cast.
Nouvelles possibilités d’entrées-sorties
C++ dispose de nouvelles facilités d’entrées-sorties. Bien qu’elles soient fortement
liées à des aspects P.O.O. (surdéfinition d’opérateur en particulier), elles sont
parfaitement utilisables en dehors de ce contexte. C’est tout particulièrement le cas des
possibilités d’entrées-sorties conversationnelles (clavier, écran) qui remplacent
avantageusement les fonctions printf et scanf. Ainsi :
cout << expression 1 << expression 2 << ......... << expression n
affiche sur le flot cout (connecté par défaut à la sortie standard stdout) les valeurs des
différentes expressions indiquées, selon une présentation adaptée à leur type (on sait
distinguer les attributs de signe et on peut afficher des valeurs de pointeurs). De même :
cin >> lvalue 1 >> lvalue 2 >> ......... >> lvalue n
113
