Tout comme en C, il est possible de définir de nouveaux
types en définissant des structures (struct), des
énumérations (enum) ou des unions (union).
La différence réside dans le fait qu’il
n’est plus utile de spécifier le mot clé
typedef pour nommer un type.
Exemple :
struct Fiche { // définition
du type Fiche
char nom[50], prenom[50];
int age;
}; // en C, il faut ajouter la ligne typedef struct FICHE
FICHE;
enum Booleen { VRAI, FAUX }; // en C, il faut ajouter la
ligne typedef enum Booleen Booleen
Booleen trouve;
trouve = FAUX; // OK
trouve = 0; // Produit une erreur car le C++ réalise
une vérification de type (pas d’erreur en C).
enum Semaine {DIMANCHE, LUNDI,
MARDI, MERCREDI, JEUDI, VENDREDI, SAMEDI};
enum Drapeau { BLEU, BLANC, ROUGE };
.....
int main (void) {
Semaine j; // définition
d'une variable de type Semaine
Drapeau d ; // Définition d’une variable de
type Drapeau
j = LUNDI;
d = BLEU ;
d = j; // ERREUR en C++ (légal en C)
...
}