# Programmation C++/Les structures

* Avant-propos
* Introduction
* Compilation
* Un premier programme
* Les commentaires
* Le préprocesseur
* Les types de base et les déclarations
** Exercices
* Les opérations de base
* Les entrées-sorties
* Les pointeurs
** Exercices
* Les références
* Les tableaux
** Exercices
** Exercices sur les tableaux statiques
** Exercice : Tris des tableaux à une dimension
** Solution : Tris des tableaux à une dimension
* Les structures de contrôle
** Exercices
** Exercices if...else et switch
* Les fonctions
** Exercices
* Les structures
** Exercices
* Les classes
** Exercices
** Exercices de développement
* Les espaces de noms
* Les exceptions
* Les templates
** Exercices
* Conventions d'appel
* Les fichiers
* La librairie standard
* Expressions rationnelles
* Interfaces graphiques
* Bibliographie et liens

## Anciennes pages

* Opérateurs
* Héritage
* Polymorphisme
* Avant-propos
* Introduction
* Compilation
* Un premier programme
* Les commentaires
* Le préprocesseur
* Les types de base et les déclarations
** Exercices
* Les opérations de base
* Les entrées-sorties
* Les pointeurs
** Exercices
* Les références
* Les tableaux
** Exercices
** Exercices sur les tableaux statiques
** Exercice : Tris des tableaux à une dimension
** Solution : Tris des tableaux à une dimension
* Les structures de contrôle
** Exercices
** Exercices if...else et switch
* Les fonctions
** Exercices
* Les structures
** Exercices
* Les classes
** Exercices
** Exercices de développement
* Les espaces de noms
* Les exceptions
* Les templates
** Exercices
* Conventions d'appel
* Les fichiers
* La librairie standard
* Expressions rationnelles
* Interfaces graphiques
* Bibliographie et liens

## Anciennes pages

* Opérateurs
* Héritage
* Polymorphisme
[ Modifier le sommaire ]

## Présentation

Les structures permettent de regrouper plusieurs variables de nature différente dans une même entité, par exemple des nombres, des booléens, des tableaux de chaines de caractères...
Ainsi, il est possible de construire de nouveaux types plus complexes.
Par comparaison, les tableaux permettent de regrouper seulement plusieurs variables de nature identique dans une même entité : un tableau de chaines de caractères, par exemple, mais pas de booléen en plus.
Une structure permet une meilleure organisation du code en regroupant tous les attributs relatifs à une entité. Par exemple, une structure Voiture peut contenir la marque (chaîne de caractère), le modèle (autre chaîne de caractère), l'année (entier), le kilométrage (entier), le prix (nombre à virgule flottante, ou entier pour représenter un prix en centimes).

## Syntaxe

identificateur identifie le nouveau type de données. Une variable de ce type est donc précédé de struct identificateur ou identificateur car le mot struct est optionnel.
[variables] est optionnel et permet de déclarer une ou plusieurs variables de ce nouveau type.

## Exemple

L'exemple ci-dessous illustre l'utilisation d'une structure nommée Position comportant deux champs (appelées également variables membres) x et y de type double.
Les variables A et B sont deux structures de type Position. L'accès à un champ d'une structure se fait par l'opérateur point (.) séparant la variable structure du nom du membre accédé.

## Pointeur vers une structure

On peut écrire naturellement
Pour faciliter la lecture et éviter les erreurs, on utilise l'opérateur ->. On peut écrire pA->x à la place de (*pA).x. Attention, *pA.x donne une erreur de compilation, à cause de la priorité des opérateurs.

## Copier une structure

Copier une structure se fait très simplement

## Voir aussi

* Exercices