Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: julian21931500 en 25 Febrero 2015, 20:43 pm



Título: Como sobre-escribir un método de una clase base en una clase heredada?
Publicado por: julian21931500 en 25 Febrero 2015, 20:43 pm
El enunciado del ejercicio me dice esto:  Cree una clase ListaOrdenada, que herede de la clase Lista y sobrescriba la operación insertar para que inserte un elemento de manera ordenada en la ListaOrdenada. Para probarla, realice un programa en C++ que lea una entrada de n números enteros e
imprima la secuencia de listas generadas al insertar cada número.

Tengo la clase lista en lista.h y estoy creando la clase ListaOrdenada que hereda de lista en otro .h que se llama ListaOrdenada.h

la herencia me funciona bien hasta el momento de que intento sobre-escribir el método insertar, el método insertar de lista.h es así: void insertar(Elemento e, int pos) si quiero hacer que el insertar en mi nueva clase sea con un solo paŕametro, así: void insertar(Elemento e) como hago? porque me dicen es que sobre-escriba el método insertar de " lista " para que inserte ordenada no que cree un nuevo método, ¿como sería la forma de hacerla clase ListaOrdenada para sobre-escribir el método insertar? espero y me puedan ayudar. Gracias!


Título: Re: Como sobre-escribir un método de una clase base en una clase heredada?
Publicado por: ivancea96 en 25 Febrero 2015, 22:46 pm
La forma más sencilla es esa que dices. ¿Seguro que no valdría?


Título: Re: Como sobre-escribir un método de una clase base en una clase heredada?
Publicado por: julian21931500 en 25 Febrero 2015, 23:04 pm
El compilar me dice que ya está re-definido ese método en la clase "lista" claro que es obvio y eso es lo que quiero hacer pero no se porque no me deja hacerlo. podrías dejarme un ejemplo de como sería la redefinición de un método de una clase heredada? (cambiando parámetros y la estructura del código).


Título: Re: Como sobre-escribir un método de una clase base en una clase heredada?
Publicado por: ivancea96 en 25 Febrero 2015, 23:35 pm
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class A{
  6.    void t(){
  7.        cout << 'a';
  8.    }
  9. };
  10.  
  11. class B:public A{
  12. public:
  13.    void t(int n){
  14.        cout << n;
  15.    }
  16. };
  17.  
  18. int main(){
  19.    B b;
  20.    b.t(5);
  21. }


Título: Re: Como sobre-escribir un método de una clase base en una clase heredada?
Publicado por: julian21931500 en 25 Febrero 2015, 23:42 pm
Muy buen aporte hermano, lo que sucede es que yo hago los .h por separado, me explico: Tengo el Lista.h y el ListaOrdenada.h separados, tu lo haces todo en un mismo.h esto influye?


Título: Re: Como sobre-escribir un método de una clase base en una clase heredada?
Publicado por: ivancea96 en 25 Febrero 2015, 23:49 pm
Prueba, o en su defecto, pon aquí los fragmentos de códigos y el error.