El documento describe los diferentes tipos de datos en C++, incluyendo enteros, flotantes, caracteres, cadenas y arreglos. También cubre temas como variables constantes, vectores, nuevos tipos de datos definidos por el usuario y clases, con énfasis en constructores y destructores.
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
TiposDatosCpp
1. Tipos de datos
Repaso de temas de lectura
SSD5
SSD5 Mtl Lourdes Cahuich 1
2. Tipos de datos
• C++ clasifica los objetos de datos en
diferentes tipos; éstos no solamente
describen las operaciones fundamentales su
no también el rango de valores que los
tipos de datos aceptan
SSD5 Mtl Lourdes Cahuich 2
3. Tipos de datos
• Diferentes tipos de datos permiten guardar
valores diferentes, el lenguaje puede
verificar y asegurar que un programador
asigne solamente valores apropiados al
objeto de datos
SSD5 Mtl Lourdes Cahuich 3
4. Tipos de datos
• Este mecanismo se conoce como revisión
de tipos C++, por eso es considerado que
es un lenguaje fuertemente tipeado, ya que
es muy estricto al revisar los tipos de datos
y sus valores correspondientes
SSD5 Mtl Lourdes Cahuich 4
5. Tipos de datos C++ Tipos Java
bool boolean
char char
int int
short long short long
float float
double double
SSD5 Mtl Lourdes Cahuich 5
6. Tipos de datos
• El espacio requerido para almacenar
variables difiere entre los lenguajes, en
C++ los requerimientos de espacio de
almacenamiento son dejados a discreción
del compilador, en otros lenguajes el
tamaño puede variar
SSD5 Mtl Lourdes Cahuich 6
8. Variables de sólo lectura
• C++ contiene un mecanismo para crear
variables de “solo-lectura”; se usa la
palabra const para permitir crear
variables de solo lectura y no puede ser
modificada después de que ésta haya sido
inicializada
SSD5 Mtl Lourdes Cahuich 8
9. Variables de sólo lectura
const int BOILING_POINT = 100;
const int FREEZING_POINT = 0;
const float PI = 3.14159;
• Los nombres de las constantes se escriben
en mayúsculas por convención
SSD5 Mtl Lourdes Cahuich 9
10. Cadenas de caracteres
• El tipo de dato cadena de caracteres
(string) provee la abstracción para permitir
que los programadores trabajen con
cadenas de caracteres; a diferencia de Java,
el tipo cadena de caracteres no está
disponible en todos los programas.
SSD5 Mtl Lourdes Cahuich 10
11. Cadenas de caracteres
• Si un programa de C++ requiere string
deberá referirse a la biblioteca que define
este tipo #include<string> ésta es
necesaria para permitir que el programador
acceda el tipo de dato cadena de caracteres
SSD5 Mtl Lourdes Cahuich 11
13. Arreglos
• C++ provee soporte básico para una
secuencia de datos homogéneos a través de
los arreglos
• En C++ se declaran los arreglos así:
//declaración de arreglos enteros
int cpp_array[10];
SSD5 Mtl Lourdes Cahuich 13
14. Arreglos
• El doble corchete puede ponerse
solamente después de la variable
• El acceso a los elementos almacenados en
un arreglo se realiza encerrando entre
corchetes el número índice del elemento
que se desea acceder; el indexamiento
comienza con cero
SSD5 Mtl Lourdes Cahuich 14
15. #include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char* argv[]){
int arr[25];
for(int i=0; i<25;i++){
arr[i]=i;
}
cout <<“Primer elemento igual a: ”<<arr[0]<<endl;
return EXIT_SUCCESS;
}
SSD5 Mtl Lourdes Cahuich 15
16. Arreglos
• Un peligro inherente es la falta de validación de
los límites del arreglo, pues C++ no soporta la
revisión de los límites y dependiendo del
contenido de la memoria adyacente puede o no
“tronar” el programa por acceder fuera de los
límites, pero podemos asegurar que los datos
que se obtienen de un acceso fuera de límites
podrían ser no significativos; es una práctica
peligrosa que se debe evitar
SSD5 Mtl Lourdes Cahuich 16
17. Vectores
• El tipo de dato Vector es una alternativa
más segura que un arreglo; pues tienen
múltiples características, por ejemplo,
regresar el tamaño del vector y también
ofrece la revisión de límites y a diferencia
de los arreglos, el vector puede aumentar
automáticamente su tamaño cuando se
requiere
SSD5 Mtl Lourdes Cahuich 17
18. Creando nuevos nombres de tipos de
datos
• En C++ se pueden crear tipos de datos
adicionales para los tipos de datos
existentes; para crear otro nombre se utiliza
la palabra clave “typedef” con la siguiente
sintaxis:
typedef tipo_anterior nuevo_nombre;
SSD5 Mtl Lourdes Cahuich 18
19. Creando nuevos nombres de tipos de
datos
• Al hacer esto los programadores pueden
encapsular su elección de tipos de datos, lo
cual es una buena práctica de
programación ya que, si es necesario, un
programador puede cambiar los usos de un
tipo de dato, en particular cambiando la
definición del “typedef”
SSD5 Mtl Lourdes Cahuich 19
20. Clases – sintaxis básica
• La clase es la unidad básica de abstracción
en C++ y se usa para especificar y después
instanciar objetos.
• La forma de definir una clase es diferente
entre Java y C++ aunque son pocas las
diferencias importantes
SSD5 Mtl Lourdes Cahuich 20
21. Clases – sintaxis básica
• Primero.- Usan diferentes modificadores
de acceso. En Java se puede repetir el
modificador de acceso para cada dato y
cada función miembro; en cambio en C++
se usa un modificador de acceso para
delimitar una sección de la definición de la
clase
SSD5 Mtl Lourdes Cahuich 21
22. Clases – sintaxis básica
• Segundo.- En C++ no existe una clase
“pública” o “privada”; se puede usar
cualquier clase incluida en la declaración de
clases
• Tercero.- Las declaraciones de clases de
C++ deben terminar con punto y coma (;)
SSD5 Mtl Lourdes Cahuich 22
23. Clases - constructores
• Los constructores son los métodos de una
clase que definen qué acciones tomar al
crear un objeto
• Una clase en C++ puede tener múltiples
constructores, lo que permite que existan
variaciones de instancias pues pueden
existir números y tipos de parámetros
diferentes en cada constructor
SSD5 Mtl Lourdes Cahuich 23
25. Clases - constructores
• El uso de listas iniciales en constructores es
la mejor forma de especificar los valores
iniciales para los miembros de los datos de
una clase.
• Las listas iniciales son variables iniciadoras
separadas por una coma, que aparecen
antes del acuerdo de un constructor.
SSD5 Mtl Lourdes Cahuich 25
26. Clases - constructores
• Todo lo qu ese encuentra entre la coma de
la línea 7 y los {} componen la lista inicial;
ésta establece el valor inicial del miembro
dato privado name igual al parámetro nm.
• También establece el valor inicial del
miembro dato sum igual a cero.
SSD5 Mtl Lourdes Cahuich 26
27. Clases - constructores
• En C++ se crean objetos con una sintaxis
similar a la declaración regular de variables;
se pueden declarar e instanciar objetos
usando sintaxis idéntica a la declaración de
los tipos fundamentales de datos
SSD5 Mtl Lourdes Cahuich 27
28. Clases - constructores
• C++ instancia un objeto cuando se ejecuta
la línea de código que contiene la
declaración del objeto.
• La instaciación involucra la ejecución de
una clase constructor
SSD5 Mtl Lourdes Cahuich 28
29. Clases – el destructor
• Un destructor es una función miembro que
se llama cuando termina el ciclo de vida de
un objeto, por lo general definen las
acciones necesarias para liberar los recursos
que un objeto pueda estar ocupando
SSD5 Mtl Lourdes Cahuich 29
31. Clases – el destructor
• La diferencia entre la definición de un
destructor y un constructor es muy sutil
(~)
• Esta función es el destructor de cada clase
SSD5 Mtl Lourdes Cahuich 31
32. Clases - definición
• Cuando se “define” una función se dicta
su comportamiento a través del código que
se encuentra entre {}
SSD5 Mtl Lourdes Cahuich 32
33. Clases - declaración
• La declaración de una función solo
especifica la interfaz de una función, que
incluye el nombre de la función, el tipo de
regreso y la lista de parámetros y
normalmente termina con ;
SSD5 Mtl Lourdes Cahuich 33
34. Clases - declaración
• Se debe poner la declaración de la función
antes del main (esto se conoce como
referencia directa –forward reference-)
• También se puede declarar primero la
función o clase y definirla posteriormente
en el código
SSD5 Mtl Lourdes Cahuich 34
35. Clases - declaración
• Una clase en C++ puede incluir todas las
definiciones de sus funciones miembro dentro
de la declaración de la clase; de manera
alternativa las funciones para una o más
funciones de la clase miembro pueden aparecer
fuera de la definición de la clase siempre y
cuando se incluyan las declaraciones dentro de la
definición de la clase
SSD5 Mtl Lourdes Cahuich 35
36. Clases - declaración
• Los programadores deben calificar
completamente los nombres de las
funciones que aparecen fuera de la
definición de la clase; para esto el nombre
de la función debe ser añadido al inicio del
nombre de la clase seguido por el
operador de resolución de visibilidad
(::)
SSD5 Mtl Lourdes Cahuich 36
37. Clases - declaración
• Colocar la definición de las funciones fuera
de la definición de la clase tiene sus
beneficios
• Primero: reduce el tamaño de la definición
de la clase, lo que realza la legibilidad, y
también permite compartir el código pre
compilado
SSD5 Mtl Lourdes Cahuich 37
38. Clases - declaración
• Segundo: Las definiciones de función
también pueden aparecer en otro archivo
diferente al de la definición de la clase, de
ésta manera se puede compilar de forma
independiente el archivo de las
declaraciones de función
SSD5 Mtl Lourdes Cahuich 38
39. Clases - declaración
• El archivo con la definición de funciones
es conocido como un archivo de
implantación.
• El archivo de definición de clase (o
cabecera o encabezado) se convierte en la
interfaz que comparte el código pre
compilado
SSD5 Mtl Lourdes Cahuich 39
40. Clases - declaración
• La directiva del preprocesador #include
reemplaza la directiva con el contenido del
archivo especificado
• Las directivas #define, #ifndef y #endif
son utilizadas para prevenir que un archivo
de definición sea incluido en más de una
ocasión
SSD5 Mtl Lourdes Cahuich 40