ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

POO en C++


Enviado por   •  17 de Junio de 2019  •  Apuntes  •  1.495 Palabras (6 Páginas)  •  190 Visitas

Página 1 de 6

Punteros: es una variable entera que apunta a otra área de memoria. Entera porque no hay subíndices decimales o negativos. Es una dirección del valor de otra variable. Los valores de los punteros son valores enteros interpretados como hexadecimales. Todas las variables declaradas tienen su dirección.

  • Se manejan dos operadores, * y &.

Operador

*

&

Declaración

Define puntero

Define referencia

Ejecución

Contenido de

Dirección de

*Ejecución es después del igual.[pic 1]

*Se asigna un espacio de memoria diferente en cada compilación.

Dirección Simbólica

Dirección Numérica

Contenido

a

0x7fff5c13978c

7

aPtr

0x7fff5c13978c

0x7fff5c13978c (diferente)

int a = 7;

int b = -34;

int *aPtr;

aPtr = &a; Apunta a (a).

aPtr = &b; Ahora apunta a (b);

int &aRef; Referencia, puntero que no puede moverse.

Int b = -34;

Int &aRef = b;

aRef = b; pero no apuntan a lo mismo.

Paso por valor: la variable se genera en una copia. (usar funciones normalmente)

Paso por referencia: se comparten aéreas de memoria (notación de punteros y referencia). Se comparte el mismo espacio de memoria.

Notación de punteros: Sea una función f1(int x) que devuelve un -12

a = 99, f1(&a).

f1(int *x), *x = -12.

Notación de referencia

a = 99, f1(a)

f1(int &x), x = 12.

Dirección de punteros sin ser arreglos avanzan de 4 en 4.

Arreglos y punteros: Entre subíndices de un arreglo se avanzan de 4 bytes en 4 bytes a partir de la ubicación en memoria del primer elemento [0].

Int *vPtr = v; Int *vPtr = &v[0]. Ambas maneras apuntan al primer valor del arreglo v.

 

*( b + offset1 ), si b es un arreglo y offset1 un contador, nos desplazamos por el arreglo b en 1 posición de memoria (4 bytes), que es lo mismo que desplazarse como b[0] a b[1].

        *size_t = variable sin signo (positiva) lo mismo que unsigned(int)

Memoria dinámica: pedir, usar y liberar memoria de distinto tamaño. delete [] borra memoria.

double *mptr;

mptr = new double[SIZE] 🡪 Declarar arreglo dinámico como puntero

delete[] mptr 🡪 Eliminar memoria

        - (mptr + 1) primer elemento

        - *mptr + 1 sumar 1 al valor de mptr

Archivos de texto:  Cap.14

ptrDatos = nullptr;

stack = memoria que se da al programa de manera automática. Es solo del programa.

heap = memoria que manjea el sistema operativo y es genérica para todo el sistema.

Sentencias try catch

Sirven para le manejo de erroes, en los cuales podemos especificar mensajes o condiciones de error mediante el uso de throw. Puede haber un try y muchos catch pero no uno sin el otro.

POO: Polomorfismo, herencia, encapsulamiento y sobrecarga de operadores

Clases: Es la creación de un nuevo tipo de dato, que posee funciones internas que las llamamos métodos. Cuando creamos clases definimos áreas de memoria. Cunado se crean clases y creamos datos, los llamamos objetos de clases y se asigna memoria cuando creamos instancias o inicializamos datos de tipo de la clase. Programa cliente es el que usa las clases.

Class Circulo; 🡪 clase

Circulo c 🡪 instancia c de tipo Círculo u objeto de tipo círculo.

La clase es como planos, y los objetos son las casas construidas con ese plano.

Si la clase tiene un método llamado radio, el punto llama a la función con la instancia perteneciente a la clase, y se llama propiedad:

c.radio( ) 🡪 del objeto c, se llama a la función radio como propiedad definida en la clase Círculo.

Si declaro como Circulo circulo (1) ya ocupo memoria, si lo hago como Circulo circulo; no se entrega memoria. Para inicializar en el segundo caso:

Circulo circulo1;

circulo1 = Circulo(2);

Los métodos en la clase con el mismo nombre de la clase se llaman constructores y no tienen tipo de retorno. Los constructores entre otras cosas inicializan variables, y toman los valores de los parámetros que sean similares a los métodos en la clase. Los constructores piden áreas de memorias, inicializan datos y los validan.

Clase: definicion de un Nuevo tipo de dato

Objeto: instancia de una clase.

Encapsulamiento: Conjunto de datos y métodos en una clase (sintaxis)

 

Los constructores no tienen tipo de retorno porque ya llevan el nombre de la clase y por ende es de tipo de datos de la clase.

Archivo interfaz: Contiene la definición clases y sus definiciones de los métodos a manera de prototipo, se lo llama archivo de interfaz .h

Archivo de implementación: Posee el código functional de las clases es de formato .cpp

Archivo cliente: En donde el programa se ejecuta

Edición, pre procesamiento, compilación, encadenación, carga para ejecución

Se puede usar una clase en otra, o incluir un .h en otro, pero a momento de ejecución el compilador detectará una definición dos veces y habrá problemas de compilación

...

Descargar como (para miembros actualizados) txt (10 Kb) pdf (218 Kb) docx (147 Kb)
Leer 5 páginas más »
Disponible sólo en Clubensayos.com