SlideShare una empresa de Scribd logo
1
Herramientas de
polimorfismo y herencia
en C++
M.C. Juan Carlos Olivares Rojas
Agenda
• Sobrecarga de operadores en C++.
• Uso de plantillas (templates) en C++.
• Manejo congruente de parámetros con
objetos dinámicos y atributos dinámicos.
• Herencia en C++: Definición, clases
abstractas y métodos virtuales. 2
Sobrecarga de operadores en C++
• La sobrecarga de operadores es una forma
más de polimorfismo.
• La sobrecarga de operadores permite
definir para una clase un método especial,
por ejemplo la clase string sobre carga el
operador + para concatenar cadenas.
3
Sobrecarga de operadores
• Los operadores que se pueden sobrecargar
son: +, -, *, /, %, ^, &, |, _, ', =, <, >, <=,
>=, ++, --, <<, >>, ==, %%, ||, +=, -=, *=,
/=, %=, &=, |=, <<=, >>=, [ ], ( ), ->, ->*,
new, delete
• Los operadores que no se pueden
sobrecargar son: ., ::, ?:, sizeof
4
Sobrecarga de Operadores
• Existen algunos operadores como el = que
ya se encuentran sobrecargados de manera
nativa. En el caso del = compara objetos
en base a sus referencias.
• Antes de ver la sobrecarga de operadores
se verá la sobrecarga de funciones para
entender el concepto.
5
Sobrecarga de funciones
• Un método o función se dice que está
sobrecargado cuando para el mismo
identificador se pueden realizar dos o más
funciones. Por ejemplo:
int suma(int a, int b) {
return a+b;
} 6
Sobrecarga de funciones
double suma(double a, double b) {
return a+b;
}
• Se puede invocar la función suma de dos
formas distintas:
• int c = suma(10, 3);
• double d = suma(10.3, 5.1); 7
Sobrecarga de operadores
• La única restricción de la sobrecarga de
operadores es que no se puede cambiar la
aridad de los operadores; es decir, si el +
es binario, se sigue manejando de la misma
forma.
• Complex& Complex::operator[](unsigned
int i) { return data[i]; }
8
Sobrecarga de operadores
class Vector {
public:
float x, y;
Vector operator+ (Vector v) {
Vector resultado;
resultado.x = x + v.x;
resultado.y = y + v.y;
return resultado;
}
}; 9
Sobrecarga de operadores en Java
• Java no soporta sobrecarga de operadores.
Los únicos casos de operadores
sobrecargados con una operación especial
(definido por el sistema no por los
programadores) son el operador = para
copia, para == igualdad de referencias y +
para la concatenación de cadenas o
elementos.
10
Uso de plantillas (templates) en C++
• Las plantillas nos permite hacer genéricos
los tipos de datos abstractos; es decir, nos
permiten definir una clase que funcione
con cualquier tipo de datos, por ejemplo
una lista puede ser de cualquier cosa.
• template <class tipo_dato>
• class clase { …… };
11
Plantillas
int max(int x, int y) {
return (x < y) ? y : x;
}
float max(float x, float y) {
return (x < y) ? y : x;
}
12
Plantillas
template <typename T>
T max(T x, T y) {
return (x < y) ? y : x;
}
• Cuando se trata de funciones no hay
diferencia entre los atributos typename y
class 13
Plantillas
• Los objetos parametrizados se crean con:
una_clase<int> x;
• Java permite genericidad pero es mucho
más básica que en C++.
public interface Iterator<E> { E next();
boolean hasNext(); } 14
Manejo congruente de parámetros
con objetos dinámicos y atributos
dinámicos
• Se debe tener mucho cuidado al momento
de crear objetos de manera dinámica que a
su vez reciba como argumentos atributos
también dinámicos.
• Se debe limpiar de la memoria todos los
objetos que no se necesiten.
15
Herencia en C++: Definición, clases
abstractas y métodos virtuales
• La herencia es un mecanismo que permite
la reutilización de componentes. Se basa
en el principio de que los objetos en la
vida real heredan ciertos atributos y
comportamientos de sus padres.
• La herencia en C++ puede ser múltiple.
16
Herencia
//Clase Padre
class punto {
protected:
int x, y
public:
int getX();
int getY();
}; 17
Herencia
//Clase hija
class linea:punto {
private:
int x1, y1;
public:
void dibujar();
};
18
Clases Abstractas
• Son aquellas clases que sólo sirven para
hacer generalización; es decir, sirven de
clase base más no se instancian objetos de
dicha clase.
• Las clases abstractas son el equivalente a
las interfaces en Java.
19
Métodos Virtuales
• Son los métodos que se definen en las
clases abstractas y que se implementan en
cada clase hija.
• Los métodos virtuales se caracterizan por
que se ligan en memoria; es decir, se
mandan llamar desde un puntero a la clase
abstracta y de manera dinámica se ejecuta
el método que corresponde al objeto
actual. 20
21
¿Preguntas, dudas y comentarios?

Más contenido relacionado

Similar a 4014552.ppt

Manual de java 3
Manual de java 3Manual de java 3
Manual de java 3
ariannalizeeth
 
Manual de java 2
Manual de java 2Manual de java 2
MANUAL DE JAVA 3
MANUAL DE JAVA 3MANUAL DE JAVA 3
MANUAL DE JAVA 3
ariannalizeeth
 
Introduccion
IntroduccionIntroduccion
Introduccion
reivax
 
El lenguaje C++ (1).ppt
El lenguaje C++ (1).pptEl lenguaje C++ (1).ppt
El lenguaje C++ (1).ppt
JOSECASHUUG
 
El lenguaje C++.ppt
El lenguaje C++.pptEl lenguaje C++.ppt
El lenguaje C++.ppt
John Harold Bonilla
 
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptxConceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
galletasdecoco84
 
Intro c sharp
Intro c sharpIntro c sharp
Intro c sharp
Juan Carlos Prieto
 
C++ Introducción de elementos del lenguaje
C++ Introducción de elementos del lenguajeC++ Introducción de elementos del lenguaje
C++ Introducción de elementos del lenguaje
PedroGonzalez183426
 
Sobrecarga de operadores
Sobrecarga de operadoresSobrecarga de operadores
Sobrecarga de operadores
r0na91
 
Programacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetosProgramacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetos
José Antonio Sandoval Acosta
 
Java
JavaJava
Java
JavaJava
5 Mecanismos Reuntilizacion Abstraccion
5 Mecanismos Reuntilizacion Abstraccion5 Mecanismos Reuntilizacion Abstraccion
5 Mecanismos Reuntilizacion Abstraccion
UVM
 
Por qué java no soporta la sobre carga de operadores
Por qué java no soporta la sobre carga de operadoresPor qué java no soporta la sobre carga de operadores
Por qué java no soporta la sobre carga de operadores
Manuel Alejandro Hernandez Sanchez
 
Sobrecarga de operadores y funciones.pptx
Sobrecarga de operadores y funciones.pptxSobrecarga de operadores y funciones.pptx
Sobrecarga de operadores y funciones.pptx
yonyroyerccosiapaza
 
Uml diagrama claseobjeto
Uml diagrama claseobjetoUml diagrama claseobjeto
Uml diagrama claseobjeto
luisgustavosanchez
 
C ++
C ++C ++
Uml diagrama clase objeto
Uml diagrama clase objetoUml diagrama clase objeto
Uml diagrama clase objeto
Facultad de Ciencias y Sistemas
 
Mule Librerias en Java
Mule Librerias en JavaMule Librerias en Java
Mule Librerias en Java
Manuel Antonio
 

Similar a 4014552.ppt (20)

Manual de java 3
Manual de java 3Manual de java 3
Manual de java 3
 
Manual de java 2
Manual de java 2Manual de java 2
Manual de java 2
 
MANUAL DE JAVA 3
MANUAL DE JAVA 3MANUAL DE JAVA 3
MANUAL DE JAVA 3
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
El lenguaje C++ (1).ppt
El lenguaje C++ (1).pptEl lenguaje C++ (1).ppt
El lenguaje C++ (1).ppt
 
El lenguaje C++.ppt
El lenguaje C++.pptEl lenguaje C++.ppt
El lenguaje C++.ppt
 
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptxConceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
 
Intro c sharp
Intro c sharpIntro c sharp
Intro c sharp
 
C++ Introducción de elementos del lenguaje
C++ Introducción de elementos del lenguajeC++ Introducción de elementos del lenguaje
C++ Introducción de elementos del lenguaje
 
Sobrecarga de operadores
Sobrecarga de operadoresSobrecarga de operadores
Sobrecarga de operadores
 
Programacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetosProgramacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetos
 
Java
JavaJava
Java
 
Java
JavaJava
Java
 
5 Mecanismos Reuntilizacion Abstraccion
5 Mecanismos Reuntilizacion Abstraccion5 Mecanismos Reuntilizacion Abstraccion
5 Mecanismos Reuntilizacion Abstraccion
 
Por qué java no soporta la sobre carga de operadores
Por qué java no soporta la sobre carga de operadoresPor qué java no soporta la sobre carga de operadores
Por qué java no soporta la sobre carga de operadores
 
Sobrecarga de operadores y funciones.pptx
Sobrecarga de operadores y funciones.pptxSobrecarga de operadores y funciones.pptx
Sobrecarga de operadores y funciones.pptx
 
Uml diagrama claseobjeto
Uml diagrama claseobjetoUml diagrama claseobjeto
Uml diagrama claseobjeto
 
C ++
C ++C ++
C ++
 
Uml diagrama clase objeto
Uml diagrama clase objetoUml diagrama clase objeto
Uml diagrama clase objeto
 
Mule Librerias en Java
Mule Librerias en JavaMule Librerias en Java
Mule Librerias en Java
 

Más de ssuser948499

bases de datos gestion y manejo de ytaba
bases de datos gestion y manejo de ytababases de datos gestion y manejo de ytaba
bases de datos gestion y manejo de ytaba
ssuser948499
 
Presentación1.estudio de casos de usobsb
Presentación1.estudio de casos de usobsbPresentación1.estudio de casos de usobsb
Presentación1.estudio de casos de usobsb
ssuser948499
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datos
ssuser948499
 
la publicidaden el internetcomo medio ac
la publicidaden el internetcomo medio acla publicidaden el internetcomo medio ac
la publicidaden el internetcomo medio ac
ssuser948499
 
f_ormulas_y_funciones.excel planillas po
f_ormulas_y_funciones.excel planillas pof_ormulas_y_funciones.excel planillas po
f_ormulas_y_funciones.excel planillas po
ssuser948499
 
editores de texto.neln sistemas de bases
editores de texto.neln sistemas de baseseditores de texto.neln sistemas de bases
editores de texto.neln sistemas de bases
ssuser948499
 
introduccionallaprogramacionweb-230123213144-47a8fc90.ppt
introduccionallaprogramacionweb-230123213144-47a8fc90.pptintroduccionallaprogramacionweb-230123213144-47a8fc90.ppt
introduccionallaprogramacionweb-230123213144-47a8fc90.ppt
ssuser948499
 
proyectointegrador-100308005101-phpapp02.pptx
proyectointegrador-100308005101-phpapp02.pptxproyectointegrador-100308005101-phpapp02.pptx
proyectointegrador-100308005101-phpapp02.pptx
ssuser948499
 
mongodb.base de datis noo relacionles fr
mongodb.base de datis noo relacionles frmongodb.base de datis noo relacionles fr
mongodb.base de datis noo relacionles fr
ssuser948499
 
presentacinorm-150325230016-conversion-gate01.pptx
presentacinorm-150325230016-conversion-gate01.pptxpresentacinorm-150325230016-conversion-gate01.pptx
presentacinorm-150325230016-conversion-gate01.pptx
ssuser948499
 
Curso_OBS. infromatica basica sistemas a
Curso_OBS. infromatica basica sistemas aCurso_OBS. infromatica basica sistemas a
Curso_OBS. infromatica basica sistemas a
ssuser948499
 
introducion a sistemas de bases de datos
introducion a sistemas de bases de datosintroducion a sistemas de bases de datos
introducion a sistemas de bases de datos
ssuser948499
 
instalacion de linux ububtu 10.10 gestio
instalacion de linux ububtu 10.10 gestioinstalacion de linux ububtu 10.10 gestio
instalacion de linux ububtu 10.10 gestio
ssuser948499
 
seguridad de las aplicaciones web en el internet
seguridad de las aplicaciones web en el internetseguridad de las aplicaciones web en el internet
seguridad de las aplicaciones web en el internet
ssuser948499
 
modulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia intermodulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia inter
ssuser948499
 
Gestion y manejo de bases de datos II 24
Gestion y manejo de bases de datos II 24Gestion y manejo de bases de datos II 24
Gestion y manejo de bases de datos II 24
ssuser948499
 
presentacion d actividad opara bases de datos
presentacion d actividad opara bases de datospresentacion d actividad opara bases de datos
presentacion d actividad opara bases de datos
ssuser948499
 
aplicaciones_web_advantage_multimedia.ppt
aplicaciones_web_advantage_multimedia.pptaplicaciones_web_advantage_multimedia.ppt
aplicaciones_web_advantage_multimedia.ppt
ssuser948499
 
gestión y manejo de bases de datos basic
gestión y manejo de bases de datos basicgestión y manejo de bases de datos basic
gestión y manejo de bases de datos basic
ssuser948499
 
Plantilla_de_presentación_de_trabajo_remoto.pptx
Plantilla_de_presentación_de_trabajo_remoto.pptxPlantilla_de_presentación_de_trabajo_remoto.pptx
Plantilla_de_presentación_de_trabajo_remoto.pptx
ssuser948499
 

Más de ssuser948499 (20)

bases de datos gestion y manejo de ytaba
bases de datos gestion y manejo de ytababases de datos gestion y manejo de ytaba
bases de datos gestion y manejo de ytaba
 
Presentación1.estudio de casos de usobsb
Presentación1.estudio de casos de usobsbPresentación1.estudio de casos de usobsb
Presentación1.estudio de casos de usobsb
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datos
 
la publicidaden el internetcomo medio ac
la publicidaden el internetcomo medio acla publicidaden el internetcomo medio ac
la publicidaden el internetcomo medio ac
 
f_ormulas_y_funciones.excel planillas po
f_ormulas_y_funciones.excel planillas pof_ormulas_y_funciones.excel planillas po
f_ormulas_y_funciones.excel planillas po
 
editores de texto.neln sistemas de bases
editores de texto.neln sistemas de baseseditores de texto.neln sistemas de bases
editores de texto.neln sistemas de bases
 
introduccionallaprogramacionweb-230123213144-47a8fc90.ppt
introduccionallaprogramacionweb-230123213144-47a8fc90.pptintroduccionallaprogramacionweb-230123213144-47a8fc90.ppt
introduccionallaprogramacionweb-230123213144-47a8fc90.ppt
 
proyectointegrador-100308005101-phpapp02.pptx
proyectointegrador-100308005101-phpapp02.pptxproyectointegrador-100308005101-phpapp02.pptx
proyectointegrador-100308005101-phpapp02.pptx
 
mongodb.base de datis noo relacionles fr
mongodb.base de datis noo relacionles frmongodb.base de datis noo relacionles fr
mongodb.base de datis noo relacionles fr
 
presentacinorm-150325230016-conversion-gate01.pptx
presentacinorm-150325230016-conversion-gate01.pptxpresentacinorm-150325230016-conversion-gate01.pptx
presentacinorm-150325230016-conversion-gate01.pptx
 
Curso_OBS. infromatica basica sistemas a
Curso_OBS. infromatica basica sistemas aCurso_OBS. infromatica basica sistemas a
Curso_OBS. infromatica basica sistemas a
 
introducion a sistemas de bases de datos
introducion a sistemas de bases de datosintroducion a sistemas de bases de datos
introducion a sistemas de bases de datos
 
instalacion de linux ububtu 10.10 gestio
instalacion de linux ububtu 10.10 gestioinstalacion de linux ububtu 10.10 gestio
instalacion de linux ububtu 10.10 gestio
 
seguridad de las aplicaciones web en el internet
seguridad de las aplicaciones web en el internetseguridad de las aplicaciones web en el internet
seguridad de las aplicaciones web en el internet
 
modulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia intermodulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia inter
 
Gestion y manejo de bases de datos II 24
Gestion y manejo de bases de datos II 24Gestion y manejo de bases de datos II 24
Gestion y manejo de bases de datos II 24
 
presentacion d actividad opara bases de datos
presentacion d actividad opara bases de datospresentacion d actividad opara bases de datos
presentacion d actividad opara bases de datos
 
aplicaciones_web_advantage_multimedia.ppt
aplicaciones_web_advantage_multimedia.pptaplicaciones_web_advantage_multimedia.ppt
aplicaciones_web_advantage_multimedia.ppt
 
gestión y manejo de bases de datos basic
gestión y manejo de bases de datos basicgestión y manejo de bases de datos basic
gestión y manejo de bases de datos basic
 
Plantilla_de_presentación_de_trabajo_remoto.pptx
Plantilla_de_presentación_de_trabajo_remoto.pptxPlantilla_de_presentación_de_trabajo_remoto.pptx
Plantilla_de_presentación_de_trabajo_remoto.pptx
 

Último

FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
Jose Luis Jimenez Rodriguez
 
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍACINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
Fernández Gorka
 
Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...
romina395894
 
Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......
LuanaJaime1
 
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdfCronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
RicardoValdiviaVega
 
1° T3 Examen Mtro JP 23-24.pdf completos
1° T3 Examen Mtro JP 23-24.pdf completos1° T3 Examen Mtro JP 23-24.pdf completos
1° T3 Examen Mtro JP 23-24.pdf completos
ROCIORUIZQUEZADA
 
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdfDESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
JonathanCovena1
 
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
JimmyDeveloperWebAnd
 
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdfMundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
ViriEsteva
 
Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)
https://gramadal.wordpress.com/
 
Camus, Albert - El Extranjero.pdf
Camus, Albert -        El Extranjero.pdfCamus, Albert -        El Extranjero.pdf
Camus, Albert - El Extranjero.pdf
AlexDeLonghi
 
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docxRETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
100078171
 
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Juan Martín Martín
 
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdfCarnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
EleNoguera
 
Inteligencia Artificial y Aprendizaje Activo FLACSO Ccesa007.pdf
Inteligencia Artificial  y Aprendizaje Activo FLACSO  Ccesa007.pdfInteligencia Artificial  y Aprendizaje Activo FLACSO  Ccesa007.pdf
Inteligencia Artificial y Aprendizaje Activo FLACSO Ccesa007.pdf
Demetrio Ccesa Rayme
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
DavidCamiloMosquera
 
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBALMATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
Ana Fernandez
 
Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024
israelsouza67
 
La necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdfLa necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdf
JonathanCovena1
 
Presentación de la historia de PowerPoint y sus características más relevantes.
Presentación de la historia de PowerPoint y sus características más relevantes.Presentación de la historia de PowerPoint y sus características más relevantes.
Presentación de la historia de PowerPoint y sus características más relevantes.
genesiscabezas469
 

Último (20)

FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
 
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍACINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
 
Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...
 
Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......
 
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdfCronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
 
1° T3 Examen Mtro JP 23-24.pdf completos
1° T3 Examen Mtro JP 23-24.pdf completos1° T3 Examen Mtro JP 23-24.pdf completos
1° T3 Examen Mtro JP 23-24.pdf completos
 
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdfDESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
 
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
 
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdfMundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
 
Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)
 
Camus, Albert - El Extranjero.pdf
Camus, Albert -        El Extranjero.pdfCamus, Albert -        El Extranjero.pdf
Camus, Albert - El Extranjero.pdf
 
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docxRETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
 
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
 
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdfCarnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
 
Inteligencia Artificial y Aprendizaje Activo FLACSO Ccesa007.pdf
Inteligencia Artificial  y Aprendizaje Activo FLACSO  Ccesa007.pdfInteligencia Artificial  y Aprendizaje Activo FLACSO  Ccesa007.pdf
Inteligencia Artificial y Aprendizaje Activo FLACSO Ccesa007.pdf
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
 
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBALMATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
 
Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024
 
La necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdfLa necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdf
 
Presentación de la historia de PowerPoint y sus características más relevantes.
Presentación de la historia de PowerPoint y sus características más relevantes.Presentación de la historia de PowerPoint y sus características más relevantes.
Presentación de la historia de PowerPoint y sus características más relevantes.
 

4014552.ppt

  • 1. 1 Herramientas de polimorfismo y herencia en C++ M.C. Juan Carlos Olivares Rojas
  • 2. Agenda • Sobrecarga de operadores en C++. • Uso de plantillas (templates) en C++. • Manejo congruente de parámetros con objetos dinámicos y atributos dinámicos. • Herencia en C++: Definición, clases abstractas y métodos virtuales. 2
  • 3. Sobrecarga de operadores en C++ • La sobrecarga de operadores es una forma más de polimorfismo. • La sobrecarga de operadores permite definir para una clase un método especial, por ejemplo la clase string sobre carga el operador + para concatenar cadenas. 3
  • 4. Sobrecarga de operadores • Los operadores que se pueden sobrecargar son: +, -, *, /, %, ^, &, |, _, ', =, <, >, <=, >=, ++, --, <<, >>, ==, %%, ||, +=, -=, *=, /=, %=, &=, |=, <<=, >>=, [ ], ( ), ->, ->*, new, delete • Los operadores que no se pueden sobrecargar son: ., ::, ?:, sizeof 4
  • 5. Sobrecarga de Operadores • Existen algunos operadores como el = que ya se encuentran sobrecargados de manera nativa. En el caso del = compara objetos en base a sus referencias. • Antes de ver la sobrecarga de operadores se verá la sobrecarga de funciones para entender el concepto. 5
  • 6. Sobrecarga de funciones • Un método o función se dice que está sobrecargado cuando para el mismo identificador se pueden realizar dos o más funciones. Por ejemplo: int suma(int a, int b) { return a+b; } 6
  • 7. Sobrecarga de funciones double suma(double a, double b) { return a+b; } • Se puede invocar la función suma de dos formas distintas: • int c = suma(10, 3); • double d = suma(10.3, 5.1); 7
  • 8. Sobrecarga de operadores • La única restricción de la sobrecarga de operadores es que no se puede cambiar la aridad de los operadores; es decir, si el + es binario, se sigue manejando de la misma forma. • Complex& Complex::operator[](unsigned int i) { return data[i]; } 8
  • 9. Sobrecarga de operadores class Vector { public: float x, y; Vector operator+ (Vector v) { Vector resultado; resultado.x = x + v.x; resultado.y = y + v.y; return resultado; } }; 9
  • 10. Sobrecarga de operadores en Java • Java no soporta sobrecarga de operadores. Los únicos casos de operadores sobrecargados con una operación especial (definido por el sistema no por los programadores) son el operador = para copia, para == igualdad de referencias y + para la concatenación de cadenas o elementos. 10
  • 11. Uso de plantillas (templates) en C++ • Las plantillas nos permite hacer genéricos los tipos de datos abstractos; es decir, nos permiten definir una clase que funcione con cualquier tipo de datos, por ejemplo una lista puede ser de cualquier cosa. • template <class tipo_dato> • class clase { …… }; 11
  • 12. Plantillas int max(int x, int y) { return (x < y) ? y : x; } float max(float x, float y) { return (x < y) ? y : x; } 12
  • 13. Plantillas template <typename T> T max(T x, T y) { return (x < y) ? y : x; } • Cuando se trata de funciones no hay diferencia entre los atributos typename y class 13
  • 14. Plantillas • Los objetos parametrizados se crean con: una_clase<int> x; • Java permite genericidad pero es mucho más básica que en C++. public interface Iterator<E> { E next(); boolean hasNext(); } 14
  • 15. Manejo congruente de parámetros con objetos dinámicos y atributos dinámicos • Se debe tener mucho cuidado al momento de crear objetos de manera dinámica que a su vez reciba como argumentos atributos también dinámicos. • Se debe limpiar de la memoria todos los objetos que no se necesiten. 15
  • 16. Herencia en C++: Definición, clases abstractas y métodos virtuales • La herencia es un mecanismo que permite la reutilización de componentes. Se basa en el principio de que los objetos en la vida real heredan ciertos atributos y comportamientos de sus padres. • La herencia en C++ puede ser múltiple. 16
  • 17. Herencia //Clase Padre class punto { protected: int x, y public: int getX(); int getY(); }; 17
  • 18. Herencia //Clase hija class linea:punto { private: int x1, y1; public: void dibujar(); }; 18
  • 19. Clases Abstractas • Son aquellas clases que sólo sirven para hacer generalización; es decir, sirven de clase base más no se instancian objetos de dicha clase. • Las clases abstractas son el equivalente a las interfaces en Java. 19
  • 20. Métodos Virtuales • Son los métodos que se definen en las clases abstractas y que se implementan en cada clase hija. • Los métodos virtuales se caracterizan por que se ligan en memoria; es decir, se mandan llamar desde un puntero a la clase abstracta y de manera dinámica se ejecuta el método que corresponde al objeto actual. 20
  • 21. 21 ¿Preguntas, dudas y comentarios?