Structures et classes
Hérité du C
1. Principe de la structure
La structure en programmation est un type de données composé par le développeur qui permet de regrouper en une seule unité plusieurs variables, éventuellement de types différents. C’est UNE variable constituée d’un ensemble de variables. C’est très utile pour former des objets complexes qui réunissent différentes facettes.
Par exemple, nous allons écrire un programme qui anime une petite entité dans la fenêtre console : une lettre qui se déplace toute seule en rebondissant sur les bords.
Cette entité nécessite :
-
une position x,y : deux float
-
un pas de déplacement dx, dy : deux float
-
une couleur : un int
-
une lettre : un char ou un int
2. Disposer d’une structure
a. Définir un type de structure
Pour définir une structure, on utilise le mot-clé struct suivi d’un nom pour la structure et d’une liste de déclarations de variables (sans initialisation) entre accolades, closes par un point-virgule. Notre entité se traduit par le type de structure suivant :
struct entite {
float x,y; // en C pas possible d'initialiser
float dx,dy; // ses variables lors de la définition
int color; // de la structure
char lettre;
};
Les variables internes au type de la structure sont appelées "champs", données membres ou propriétés ; ces trois termes sont synonymes.
La définition d’un type de structure peut se trouver en global au début d’un fichier de code ou dans une bibliothèque ou même en local dans une fonction.
b. Déclarer...
Apports du C++ : la structure devient une classe
En C++ la structure devient une classe et offre ainsi tous les avantages d’une classe, principalement :
-
elle intègre des fonctions comme membres,
-
elle dispose des fonctions spéciales comme les constructeurs et destructeurs,
-
le pointeur this contient l’adresse de chaque instance,
-
elle contrôle l’accès à ses variables et fonctions membres qui deviennent public, protected ou private.
La seule et unique différence entre une structure C++ et une classe concerne les droits d’accès aux éléments contenus. Toutes les caractéristiques C++ de la structure et de la classe sont abordées au chapitre Classes.