viernes, 3 de mayo de 2013

Clases de tipos de C++


Clases de tipos de C++



Todos los lenguajes de programación tienen un sistema más o menos complejo de clasificación de los objetos en base a una característica denominada "tipo".  La característica distintiva de cada tipo viene determinada por las operaciones que pueden efectuarse con sus integrantes; lo cual es bastante natural e intuitivo.
Aunque las cuestiones de clasificación suelen ser un tanto artificiosas, dependiendo de la característica distintiva que se aplique, los tipos de datos C++ pueden clasificarse como sigue:


Tipos básicos



También llamados fundamentales, primitivos y escalares. No tienen "descomposición", están predefinidos en el lenguaje. Su álgebra, es decir, las operaciones que les son permitidas, también están preconstruidas en el lenguaje, que dispone así mismo de constructores y destructores por defecto para ellos. Su clasificación es la siguiente:
·         Asimilables a enteros
o    carácter  (char)
o    entero (int)
o    booleano (bool)
o    enumeraciones (enum)
o    punteros (no tienen una palabra clave específica, sino un símbolo , -calificador de tipo-)
·         Fraccionarios (float, double)
·         Ausencia de dato (void



Tipos extendidos

Son "adaptaciones" de detalle sobre los tipos básicos para mejor adaptarse a necesidades específicas.
·         largo (long)
·         corto (short)
·         con signo (signed)
·         sin signo (unsigned)
Los enteros y fraccionarios (en todas sus variaciones long, signed, etc) se conocen colectivamente como tipos numéricos 


Tipos compuestos

Aparte de los anteriores, C++ soporta tipos compuestos (también denominados tipos-clase). Son compuestos o agregados de tipos básicos, por esta razón se les denomina también tipos agregados o abstractos ADTs ("Abstract data types"). El "material" de que están compuestos son los tipos básicos, bien en estado "puro" o en sus diversas "adaptaciones". El proceso es recursivo, de forma que un tipo complejo puede contener miembros que son a su vez tipos complejos y así sucesivamente.
Desde el punto de vista semántico la gramática C++ establece como tipos compuestos ("Compound types") los siguientes:
·         Matrices de objetos de cualquier tipo.
·         Funciones, que aceptan parámetros de ciertos tipos y devuelven void u objetos (o referencias a objetos) de cierto tipo.
·         Punteros a-void;  punteros a-objetos, o punteros a-función (incluyendo miembros estáticos de clases) de un tipo determinado.
·         Punteros a miembros no-estáticos de clases (que señalan miembros de un tipo determinado dentro de objetos de una clase determinada.
·         Referencias a objetos o funciones de un tipo determinado.
·         Clases.
·         Uniones.
·         Enumeraciones

No hay comentarios.:

Publicar un comentario