Formation LANGUAGE C++, tutoriel & guide de travaux pratiques en pdf.
Incompatibilités entre C et C++
Entête de fonctions La syntaxe Kernigham & Ritchie n’est plus acceptée
void echange( x, y) // erreur de compilation int &x, &y; { … }
Prototypes de fonctions
Le nombre et le type des paramètres de fonctions sont contrôlés à chaque appel. Tout appel de fonction doit donc obligatoirement être précédé d’un prototype ou de la définition de la fonction. (Comme en C ANSI)
fonction sans argument
float f1 ( ) ; // fonction sans argument et pas float f ( void);
fonction sans valeur de retour
void f2 ( ) ; // ni f2 ( ) ni void f2( void ) ;
le type void *
la conversion implicite n’est possible que dans le sens void * Type * void *generic; int *ptr;
generic = ptr; // ok ptr = generic; // erreur à la compilation ptr = ( int *)generic; // ok
Symbole de type const.
Le mot clé const, placé devant un symbole, est un modificateur qui signifie que la valeur du symbole ne doit pas être modifiée.
En C++ un symbole défini avec const est local au fichier : on peut redéfinir le même symbole dans un autre fichier (avec une valeur différente)
en C il y a une erreur à l’édition de liens.
en C++, const est utilisé en remplacement de la directive #define du préprocesseur. En C en C++ #define MAX 100 char tab[ MAX + 1] const int max = 100; char tab[ MAX + 1] En C++ une constante doit obligatoirement être initialisée lors de sa déclaration.