title: Type personnalisé
text: # Type personnalisé
  
  En programmation informatique, un type personnalisé (en:user-defined type), appelé parfois incorrectement type abstrait de données (en:abstract data type), est un type de données déclaré par le programmeur.
  
  Un type personnalisé est généralement conçu en utilisant les types intrinsèques (en:built-in type) du langage de programmation et des personnalisés, incluant le type personnalisé en cours de déclaration.
  
  ## Catégories de type personnalisé
  
  Parmi les façons de déclarer un type personnalisé, on retrouve les suivantes :
  
  Exemples de type personnalisé :
  
  | Catégorie de type personnalisé | Exemple en | Exemple en |
  | - | - | - |
  | Catégorie de type personnalisé | langage C | langage C++ |
  | macro | //## Déclaration du type personnalisé. #define TNouveauType unsigned long int //** Définition d'une variable //** à partir du type personnalisé. TNouveauType MaVariable; | //## Déclaration du type personnalisé. #define TNouveauType unsigned long int //** Définition d'une variable //** à partir du type personnalisé. TNouveauType MaVariable; |
  | type déclaré (en) | //## Déclaration du type personnalisé. typedef unsigned long int TNouveauType //** Définition d'une variable //** à partir du type personnalisé. TNouveauType MaVariable; | //## Déclaration du type personnalisé. typedef unsigned long int TNouveauType //** Définition d'une variable //** à partir du type personnalisé. TNouveauType MaVariable; |
  | structure [de données] (en) | //## Déclaration du type personnalisé. struct TNouveauType { unsigned long int Numero; char Nom[30]; float Salaire; } //** Définition d'une variable //** à partir du type personnalisé. struct TNouveauType MaVariable; | //## Déclaration du type personnalisé. struct TNouveauType { unsigned long int Numero; char Nom[30]; float Salaire; } //** Définition d'une variable //** à partir du type personnalisé. TNouveauType MaVariable; |
  | union [de données] (en) | //## Déclaration du type personnalisé. union TNouveauType { unsigned long int Numero; char Octets[8]; float Salaire; } //** Définition d'une variable //** à partir du type personnalisé. union TNouveauType MaVariable; | //## Déclaration du type personnalisé. union TNouveauType { unsigned long int Numero; char Octets[8]; float Salaire; } //** Définition d'une variable //** à partir du type personnalisé. TNouveauType MaVariable; |
  | liste énumérative | //## Déclaration du type personnalisé. enum TNouveauType { ccSphere, ccCube, ccPyramide, ccTetraedre }; //** Définition d'une variable //** à partir du type personnalisé. enum TNouveauType MaVariable; | //## Déclaration du type personnalisé. enum TNouveauType { ccSphere, ccCube, ccPyramide, ccTetraedre }; //** Définition d'une variable //** à partir du type personnalisé. TNouveauType MaVariable; |
  | classe [d'objets] | inexistant | //## Déclaration du type personnalisé. class TNouveauType { private: unsigned long int Numero; protected: char Nom[30]; float Salaire; public: int LireNumero; } //** Définition d'une variable //** à partir du type personnalisé. TNouveauType MaVariable; |
  
  ## Source
  
  * Mathieu Nebra, « Créez vos propres types de variables », sur www.sbras.ru (consulté le 6 juin 2016).
  * (en) « User-Defined Types », sur www.sbras.ru (consulté le 6 juin 2016).
  * (en) Bjarne Stroustrup, The C++ Programming Language, New York, Addison-Wesley
  * (en) Bjarne Stroustrup, A Tour of C++, New York, Addison-Wesley, janvier 2015, 181 p. (ISBN 978-0-321-95831-0)
  * (en) Bjarne Stroustrup, Programming : Principles and Practice Using C++, New York, Addison-Wesley, janvier 2015, 1274 p. (ISBN 978-0-321-99278-9)
  