Poliformismo

Description

Polimorfismo en C++
Luis Romero
Note by Luis Romero, updated more than 1 year ago
Luis Romero
Created by Luis Romero over 8 years ago
10
0

Resource summary

Page 1

Indica que una variable pasada o esperada puede adoptar múltiples formas, en programación orientada a objetos se suelen entender dos cosas: Se refiere a que se puede trabajar con un objeto de una clase sin importar de qué clase se trata. Se consigue mediante jerarquías de clases y clases abstractas. La posibilidad de declarar métodos con el mismo nombre que pueden tener diferentes argumentos dentro de una misma clase. La capacidad de un programa de trabajar con más de un tipo de objeto se conoce con el nombre de polimorfismo, existe la posibilidad de que un método de una clase derivada se llame como método de la clase base pero tenga un funcionamiento diferente. Por ejemplo:Tomemos la clase disco_musica que hereda de la clase base disco:class disco{protected: int capacidad; char * fabricante; int num_serie; public:disco (int c, char * f, int n){ capacidad = c; strcpy(fabricante, f); num_serie=n;}};class disco_musica : public disco{ private:...public: disco_musica (int c, char* f, int n, char* t) : disco (c,f,n){ strcpy(tipo,t); lista_canciones=NULL;} }; Cuando se invoca un método de un objeto de la clase derivada mediante un puntero a un objeto de la clase base, se trata al objeto como si fuera de la clase base.Otras veces tal vez se desee que el comportamiento de la clase desaparezca por completo.Para ello se utiliza la palabra reservada virtual, si se quiere que el comportamiento de un método de la clase disco desaparezca se ha de declarar el método como virtual. Si queremos modificar la clase disco, a través de un puntero a disco podríamos: class disco{protected:...virtual void imprimir_fabricante(){cout << fabricante; } ...};En este caso el objeto será siempre el de la clase derivada independientemente de cómo se pase el objeto a otras funciones. A esto es a lo que suele referir el término polimorfismo. Los métodos virtuales heredados son también virtuales en la clase derivada, por lo que si alguna clase hereda de la clase derivada el comportamiento será similar al indicado.Los únicos métodos que no pueden ser declarados como virtuales son los constructores, los métodos estáticos, y los operadores new y delete.

Page 2

Clase virtual pura Hay veces en las que no va a ser necesario crear objetos de la clase base, o simplemente no se desea que quien utilice la clase pueda crear objetos de la clase base, lo que suele llamarse en POO clases abstractas.Define el interfaz que debe tener una clase y todas las clases que heredan de ella. El concepto de clases abstractas se implementa mediante funciones virtuales puras.Se declaran anteponiendo la palabra virtual y añadiendo al final de la declaración =0 . Para estas funciones no se proporciona implementación.Dada una clase abstracta, no se pueden crear objetos de esa clase base. Se pueden crear punteros que a objetos de la clase base abstracta que realmente apunten a objetos de la clase derivada.

Show full summary Hide full summary

Similar

Diapositivas de Diseño gráfico, evolución y tendencias
Samantha Molina Vega
Diseño gráfico, evolución y tendencias - APUNTE
escandoncb
Diseño gráfico, evolución y tendencias
Samantha Molina Vega
PRESENTACIÓN EN GOCONR
weownthenigh
Eliminacion de un nodo
LUIS FERNANDO RUIZ GARCIA
test de Diseño gráfico, evolución y tendencias
Samantha Molina Vega
Notación algoritmica
Jenni' Burbujeante
factores culturales que afectan las operaciones de los negocios internacionales
JOHANA HERNANDEZ
EL LIBRO Y SUS PARTES
A14N 3URT0N
Técnicas de recopilación.
onlyhyuk8
Diapositivas de Correcion y edicion de fotografia
efrainska