Différences entre les versions de « Langage C++/Structures, unions et champs de bits »

m
=== Les Unions ===
 
Les unions sont une forme de typage faiblement typé. Les unions ont été conservéeconservées du C pour compatibilité et ne correspondent pas à la philosophie d'un langage orienté objet.
 
Les unions permettent de créer des espaces mémoire où l’on peut interpréter une même donnée de différentes manières ou de diviser une même donnée en sous ensembles. En fait, une union déclare la disposition de tous ses membres en partant de la même adresse contrairement à la structure qui dispose ses membres les uns à la suite des autres.
 
Les unions ne sont pas à proprement parler des structures. UtilisésUtilisées telles quelles, elles ne permettent pas l'héritage mais il existe un moyen de contourner cet obstacle. Il est possible de créer des unions non nommées, cela permet de déléguer la manipulation des membres directement à la portée supérieure. Sachant cela il suffit d'encapsuler une union dans une structure typée pour rendre l'héritage possible. Cela implique cependant qu’il sera impossible de créer un constructeur ou des méthodes non inlinées au niveau de l'union. Pour des raisons de lecture il sera donc préférable de déléguer la gestion des méthodes de l'union à la portée supérieure (soit la structure dans notre cas). Cela exige aussi que tous les attributs de l'union soient déclarédéclarés comme public.
 
{{Définition|contenu='''Syntaxe:'''
48

modifications