0% encontró este documento útil (0 votos)
43 vistas54 páginas

Programación Orientada A Objetos

El documento describe conceptos básicos de programación orientada a objetos como clases, objetos, atributos, métodos, constructores y destructores. Explica que una clase define el tipo de datos de un objeto y combina la representación de datos (atributos) y funciones (métodos) que manipulan esos datos. También cubre temas como la creación de objetos, el acceso a atributos y métodos, y la sobrecarga de funciones y constructores.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
43 vistas54 páginas

Programación Orientada A Objetos

El documento describe conceptos básicos de programación orientada a objetos como clases, objetos, atributos, métodos, constructores y destructores. Explica que una clase define el tipo de datos de un objeto y combina la representación de datos (atributos) y funciones (métodos) que manipulan esos datos. También cubre temas como la creación de objetos, el acceso a atributos y métodos, y la sobrecarga de funciones y constructores.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 54

Programación

Orientada a Objetos
Grupo 5
integrantes :

- Camacho Odar, Sebastian Alexis


- Huallpa Cusi, Jano
- Ibañez Sanchez, Marlon Jose Alexis
- Ramirez Tapia, Marcelo Antonio
Clase objeto
- clase como “un
conjunto de objetos - “cualquier cosa, real o
abstracta, en la que se
que comparten una almacenan datos y aquellos
estructura y métodos (operaciones) que
comportamiento manipulan los datos”.
comunes”. tiene atributos y métodos
definicion de abstracción
Proceso mental de extraccion de las características esenciales de algo,
ignorando los detalles irrelevantes.

-DNI
-NOMBRE
-EDAD
-DIRECCIÓN
¿Qué son clases? En términos Una clase es un medio
prácticos, una clase es un tipo para traducir la abstracción
definido por el usuario. Las
de un tipo definido por el
clases son los bloques de
construcción fundamentales de usuario. Combina la
los programas orientados a representación de los datos
objetos. miembros (atributos) y las
funciones miembro
(métodos) que manipulan
esos datos en una única
entidad o paquete que se
trata como tal.
•a definición o especificación tiene dos
partes:
•1) Declaración de la clase
•2)Definición de métodos de una clase
Private por defecto
IMPORTANTE
Objetos de clases

“INSTANCIAR”
El operador de acceso a un miembro (.) selecciona un miembro individual
de un objeto de la clase.
Acceso a miembros de la clase:
EJEMPLO:
¿DATOS MIEMBRO?

¿FUNCIONES MIEMBRO?
Definición de una función
miembro fuera de la clase
Las funciones miembro definidas fuera de la
definición de la clase deben indicar que son
miembros de la clase.

Este prototipo indica al compilador que la


función es un miembro de la clase pero que
se definirá fuera de la declaración de la
clase, en alguna parte del listado. La
sintaxis de la definición de la función
requiere el operador de resolución de
ámbito (::) y es la siguiente:
CLASE
Llamadas a funciones
miembro
Las funciones miembro de una clase se invocan o llaman mediante el operador
punto (.) con la siguiente sintaxis:
Constructores en C++
¿Qué es un constructor?

Un constructor es una función miembro que se ejecuta automáticamente


siempre que se crea un objeto. La función constructor se utiliza
normalmente para inicializar los atributos. Aparte, De igual manera
hablamos de la función constructor, también existe una función
destructor.
Importante
Para crear los constructores hay que tener en cuenta una 3 cosas muy
importantes:

1. Tiene el mismo nombre que la propia clase.


2. Cuando se define un constructor no sé puede
especificar un valor de retorno, ni incluso void;
3. Puede tomar cualquier número de parámetros.
Sintaxis de los constructores
La definición de un objeto
pasa los valores de
parámetros al constructor,
utilizando una sintaxis
similar a la llamada normal
de la función

Esta definición crea una


instancia de objeto tiempo
invoca al constructor de la
clase pasandole los
parametros con valores
especificados.
Caso particular
De lo explicado anteriormente, también existe la posibilidad de
pasar los valores de los parámetros al constructor cuando se
crea la instancia de una clase utilizando el operador new:

El operador new invoca


automáticamente al
constructor del objeto que
crea (esta es una ventaja
importante de utilizar new
en lugar de otros métodos
de asignación de memoria
como la función malloc).
Constructor por defecto
No posee parámetros

Un constructor por defecto


normalmente inicializa los
miembros dato asignándoles
valores por defecto.

OJO:Una vez que se ha declarado un


constructor, cuando se declara un objeto
Punto sus miembros dato se inicializan a 0.
Regla sobre constructores por
defecto
C++ crea automáticamente un constructor por defecto cuando no existen otros
constructores. Tal constructor no inicializa los miembros dato de la clase a un
valor previsible, es preferible crear su propio constructor por defecto, para darle
la opción de inicializar los miembros dato con valores previsibles.

Precaución para los constructores


por defecto
Tenga cuidado con la escritura de la siguiente sentencia:
Punto P ( );
Aunque parece que se realiza una llamada al constructor por defecto, lo que se
hace es declarar una función de nombre P que no tiene parámetros y devuelve
un resultado de tipo Punto.
Constructores alternativos
Como ya se ha visto anteriormente es posible pasar argumentos a un
constructor asignando valores específicos a cada miembro dato de los
objetos de la clase. A estos constructores con parámetros se lo llama
constructores alternativos.
El operador new invoca
automáticamente al
constructor del objeto que
crea (esta es una ventaja
importante de utilizar new
en lugar de otros métodos
de asignación de memoria
como la función malloc).
Constructores sobrecargados
Los constructores sobrecargados son bastante frecuentes;
proporcionan medios alternativos para inicializar objetos nuevos de
una clase. Solo un constructor se ejecuta cuando se crea un objeto,
con independencia de cuántos constructores hayan sido definidos.
Constructor de copia
Este constructor se llama automáticamente cuando un objeto se pasa
por valor: se construye una copia local del objeto que se construye y
se llama también cuando un objeto se declara e inicializa con otro
objeto del mismo tipo.

Verificar que
cosa esta
mal.
Destructores en C++
¿Que es un destructor?
Un destructor mayormente posee las mismas características
que un constructor, su función es de liberar memoria adquirida
por el constructor

La única excepción del


destructor, es negar todo
parámetro y sólo puede existir
uno.
Clases compuestas
Es aquella que contiene miembros dato que son asimismo objetos
de clases. Antes de activar el constructor, se construyen los
miembros objetos individualizados en su orden de declaración.

Cuando un objeto Estudiante


sale de alcance, se llama a su
destructor. El cuerpo de
~Estudiante se ejecuta antes
que los destructores de
Expediente y Dirección. Dicho
de otro modo, el orden de
llamada de los destructores es
opuesta a los constructores.
Sobrecarga de funciones
¿Qué es una Sobrecarga de funciones?
- Nosotros en c++ podemos crear o definir diferentes
funciones que tengan el mismo nombre.

- Nosotros al hacer el llamado a una función que se encuentra


sobrecargada el compilador de c++ se encarga de
seleccionar la función sobrecargada adecuada.

- Entonces en resumen las funciones sobrecargadas nos


permiten crear varias funciones que tengan el mismo
nombre, que realicen tareas similares pero con distintos
tipos de datos.
Sobrecarga de funciones miembro
- Las mismas reglas utilizadas para sobrecargar funciones
ordinarias se aplican a las funciones miembros. Una de las
ventajas fundamental de trabajar con funciones miembro
sobrecargadas es la comodidad que aporta a la programación.

- Al igual que sucede con las funciones no miembro de una clase,


las funciones miembros de una clase se pueden sobrecargar,
pero menos los operadores sobrecargados, ya que tienen reglas
especiales.
¿Cuándo se da una
sobrecarga de funciones?
- No puede existir dos funciones en el mismo ámbito con igual
asignatura (lista de parámetros).

- Los constructores suelen ser las funciones que sobrecargan


con mayor frecuencia, como ya se ha visto en ejemplos
anteriores
Funciones amigas
- ¿Cómo hacerlo? El procedimiento es simple: La clase
mantiene su propia lista aprobada de funciones no
miembros a las que se conceden los mismos privilegios que
a las funciones de una clase.

- Las funciones no miembros en la lista se llaman funciones


amigas y la lista se conoce como lista de amigos.

- Cualquier función que intente tener acceso a las variables


de un objeto es comprobada primero contra la lista de
amigos: Si la función está en la lista, se aprueba el acceso;
de lo contrario se niega.
17.7 Sobrecarga de operadores
- En C++ hay un número determinado de operadores predefinidos que se
pueden aplicar a tipos estándar incorporados o integrados.
- Por ejemplo, un operador + se utiliza para tipo int y otro para tipo double.
- Sin embargo, cuando los tipos de datos son clases no hay prácticamente
operadores predefinidos.
Al trabajar con clases; por ejemplo, la clase
Racional que representa a los números racionales y
sus posibles operaciones, es muy importante que se
puedan realizar operaciones como suma, resta,
producto, etc.

En esencia lo que se busca es que los datos de tipo


clases (String, Fecha, Complejo, etc.), puedan ser
tratados como si fueran tipos de datos simples.
Operadores que se pueden sobrecargar
❖ Una función operador es aquella cuyo nombre consta de la palabra
reservada operator seguida por un operador unitario o binario.
❖ Formato: operator operador

Los siguientes operadores


no se pueden sobrecargar:
. acceso a miembro
.* indirección de acceso a miembro
:: resolución de ámbitos
?: if aritmético
Excepto para el caso de los operadores new, delete y ->,
las funciones operador pueden devolver cualquier tipo de dato.
❖ Cuando se declaran operadores para clases lo que se hace es escribir una
función con el nombre operator x en donde x es el símbolo de un
operador. Existen dos medios de construir nuestros propios operadores,
bien formulándolos como funciones amigas de la clase, aunque lo usual
será como funciones miembro.
Reglas

❖ Las funciones con el nombre operator x, x es el símbolo del operador.


❖ La mayoría de los operadores predefinidos pueden ser sobrecargados para
tipos clase.
❖ Puede tener un operando (unitario) o dos operandos (binario).
❖ El número de operadores y la prioridad son la misma que la del
correspondiente operador predefinido
❖ Se puede construir como una función miembro o como una función amiga.
17.8 Sobrecarga de operadores unitarios

Un operador unitario se puede definir bien como un amigo


con un argumento, o bien como una función miembro sin
argumento, que es el caso más frecuente.
En el siguiente
ejemplo se sobrecarga
el operador unitario
++ para incrementar
objetos de la clase
Tiempo.

El siguiente programa
crea un objeto tipo
Tiempo, se
introducen datos para
el objeto y se aplica el
operador
sobrecargado ++.
Sobrecargar un operador unitario como función
miembro
El siguiente ejemplo muestra cómo
se puede sobrecargar un operador
unitario como una función miembro
de una clase:

El siguiente programa crea un objeto


de tipo Unitaria al que se le aplica
el operador sobrecargado --.
Sobrecargar un operador unitario como función
miembro

La función operador unitario


––() está declarada sin
argumentos, al ser una función
miembro el sistema pasa el
puntero this implícitamente. Por
consiguiente, el objeto que se liga
a la función miembro se convierte
en el operando de este operador.
Sobrecarga de un operador unitario como una
función amiga
El siguiente ejemplo sobrecarga
el operador unitario ++ como
una función amiga de la clase:

El siguiente programa crea un


objeto de tipo Unitaria al
que se le aplica el operador
sobrecargado ++.
Sobrecarga de un operador unitario como una
función amiga
La función operador ++ () está
definida fuera de la clase, y debido
a que es una función amiga, el
sistema no pasa el puntero this
implícitamente.
Por consiguiente, tiene un
argumento que es el objeto de la
clase Unitaria sobre el que se
aplica el operador.
17.9 Sobrecarga de operadores binarios

Los operadores binarios pueden ser sobrecargados tan


fácilmente como los operadores unitarios. Se pueden
sobrecargar pasando a la función dos argumentos si no es
función miembro.

El primer argumento es el operando izquierdo del operador


sobrecargado y el segundo argumento es el operando derecho
si la función no es miembro de la clase.
17.9 Sobrecarga de operadores binarios

Consideremos un tipo de clase T y Un operador binario puede, por


dos objetos x1 y x2 de tipo T. consiguiente, ser definido:
Definamos un operador binario +
- Una función de dos argumentos
sobrecargado.
(función amiga de la clase);
Entonces:
x1 + x2 - Una función miembro de un
se interpreta como argumento, y el caso más
operator+(x1,x2) frecuente;
o como - Pero nunca las dos a la vez.
x1.operator+(x2)
􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏
􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏
􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏􀀏
Sobrecarga de un operador binario como función
miembro

El siguiente ejemplo muestra cómo


sobrecargar un operador binario
como una función miembro de la
Clase:

A continuación un programa crea


tres objetos de tipo Binario y se
realiza la operación suma (+) con
dos objetos.
Sobrecarga de un operador binario como una
función amiga
La función operador binario
operator+ está declarada amiga de
la clase; debido a que es una función
amiga el sistema no pasa el puntero
this implícitamente, y por
consiguiente se deben pasar los dos
objetos Binario explícitamente con
ambos argumentos. Como
consecuencia, el primer argumento
de la función miembro se convierte
en el operando izquierdo de este
operador y el segundo argumento se
convierte en operando derecho.

También podría gustarte