syndicats - dois love'em :) Il n'y a pas vraiment d'équivalent en Java, tant de développeurs Java à trouver particulière. Une union est conceptuellement un peu comme une classe abstraite - un seul syndicat peut contenir différents types de données. Les types de données ont souvent une sorte de relation d'héritage parent-enfant - ce qu'ils font dans le cas - mais ils ne sont pas tenus de le faire. Il n'est pas inhabituel, par exemple, de voir une union constituée d'un entier et d'un double - dans ce cas, ce n'est pas une structure de données contenant un entier et un double, mais un qui contient soit un entier ou un double, dans un morceau de mémoire spécifique. Le type réellement utilisé doit être déterminé au moment de l'exécution.
Dans ce cas, l'union SDL_Event modélise plusieurs types d'événements. Le premier champ, type
indique comment le reste des données doit être interprété. Si le type est SDL_KEYDOWN
, l'union doit être interprétée comme une structure de type SDL_KeyboardEvent.Le premier champ de SDL_KeyboardEvent est également type
- ce qui est logique car il est compressé dans le même espace que le SDL_Event "de base". Vous pouvez penser à type
(un peu) comme un attribut de la base "SDL_Event", qui peut être (en quelque sorte) héritée par les sous-types spécifiques. Je suis un peu louche ici, parce que l'analogie n'est pas vraiment très forte.
Dans tous les cas, le compilateur s'assurera que SDL_Event est assez grand pour stocker les différentes structures qu'il contient. Mis à part type
, les structures spécifiques SDL_DropEvent
, SDL_KeyboardEvent
, etc., n'ont pas beaucoup en commun, comme on peut le voir en regardant leurs définitions.
En Java AWT, classes d'événements effectuent presque exactement le même rôle que l'union fait SDL_Event dans SDL avec C.
Ne pas oublier de marquer la bonne réponse (en utilisant la case), une fois que vous êtes satisfait. – BTownTKD