Type composé
Dans le de l'informatique, les types de composé de sont un Datatypes qui peut être construit dans un langage de programmation hors des types primitifs du de cette langue et d'autres types composés. L'acte de construire un type composé est connu comme composition en .
Structures et classes de C/C++
Un struct est notion de s du C 's et le C++ 'd'un type composé, un datatype qui compose un ensemble fixe de champs marqués ou de membres de . Il est soi-disant en raison du mot-clé de struct utilisé en les déclarant, qui est abréviation la structure de ou, plus avec précision, la structure de données définie pour l'utilisateur de .
Dans C++, la seule différence entre un struct et une classe est le niveau d'accès de de défaut , qui est le privé pour les classes et le public de pour structs.
Noter que tandis que les classes et le mot-clé de class étaient complètement nouveaux dans C++, le langage de programmation du C déjà a eu un type brut de structs. à toutes fins pratiques, forme de C++ structs un superjeu de C structs : pratiquement tout le C valide structs sont C++ valide structs avec la même sémantique.
Déclaration
Une déclaration destruct se compose d'une liste de champs, qui peuvent avoir n'importe quel type. Tout le stockage exigé pour un objet de struct est la somme des conditions de stockage de tous les champs, plus n'importe quelle remplissage interne. Par exemple : lang=" de
définit un type, visé comme struct Account. Pour créer une nouvelle variable de ce type, nous pouvons écrire le myAccount de compte de struct ; ce qui a un composant de nombre entier, accédé par myAccount.account_number, et un composant à point mobile, accédé par myAccount.balance, aussi bien que les composants de first_name et de last_name. La structure myAccount contient chacune des quatre valeurs, et chacun des quatre champs peut être changé indépendamment.
Puisque l'inscription du struct account à plusieurs reprises en code devient encombrante, il n'est pas peu commun de voir un rapport de typedef en code de C pour fournir un synonyme plus commode pour le struct. Par exemple : lang=" de
En code de C++, le typedef n'est pas nécessaire parce que les types définis using struct sont déjà une partie du namespace régulier, ainsi le type peut désigné sous le nom du struct Account ou simplement du Account.
En tant qu'autre exemple, un type composé de vecteur tridimensionnel qui emploie le type de données de virgule flottante pourrait être créé avec : lang=" de
Une variable appelée velocity avec un type composé de Vector serait déclarée comme vitesse de Vector ; Des membres de du velocity seraient accédés using une notation de point. Par exemple, velocity.x = 5 ; placerait le composant de x de velocity égal à 5.
De même, une structure de couleur a pu être créée using : lang=" de
Dans les graphiques 3D, vous habituellement devez maintenir la position et la couleur de chaque sommet. L'one-way pour faire ceci serait de créer un type composé de Vertex, using les types composés précédemment créés de Vector et de Color : lang=" de
Instanciation
Créer une variable du typeVertex using le même format qu'avant : Vertex v ;
Accès de membre
Assigner les valeurs aux composants dev comme ainsi : v.blue = 255 ;
primitif Subtyping
L'utilisation primaire destruct est pour la construction des datatypes complexes, mais parfois elle est employée pour éviter des conventions standard de C pour créer le primitif subtyping . Par exemple, les protocoles communs d'Internet se fondent sur le fait que les compilateurs C insèrent la remplissage entre les champs de struct des manières prévisibles ; ainsi le code ifoo_old_stub de struct { long x, y ; } ; struct ifoo_version_42 { long x, y, z ; *name de char ; longtemps a, b, c ; } ; operate_on_ifoo vide (ifoo_old_stub de struct *) ; struct ifoo_version_42 s ; …. operate_on_ifoo (&s) ; travaillera correctement.
Types de fonction
La fonction de dactylographie (ou type de les signatures sont construites des types primitifs et composés, et peuvent servir de types eux-mêmes en construisant les types composés : lang=" dedouble de typedef (*Metric) (point p1, point p2) ;
struct de typedef { Centre de point ; double rayon ; Métrique métrique ; } Cercle ;
Voir également
Composition en objet de
.
| Random links: | Câble coaxial de liaison | Psychologie analytique | Parc d'Alexandra, Manchester | Point de Hollie | Tipo_compuesto |