elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Pregunta sobre herencia y polimorfismo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pregunta sobre herencia y polimorfismo  (Leído 2,229 veces)
Rodrigosolari

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Pregunta sobre herencia y polimorfismo
« en: 5 Mayo 2012, 19:59 pm »

buenas mi pregunta va ahacerca sobre Herencia, Polimorfismo y contructores
en herencia, se ereda todos los metodos, y los constructores son un metodo??
mi pregunta va sobre la linea comentada del codigo, no se supone que ese constructor debe heredar al la clase b, y el constructos polimorfico(elque recibe parametros, debe estar incluido en la clase b???, porque tenemos que llamar a ese constructor, con el operador :: ?
 #include <iostream>
 using namespace std;
 class ClaseA {
public:
    void Incrementar() {
    cout << "Suma 1" << endl;
}
void Incrementar(int n) {
    cout << "Suma " << n << endl;
}
};
class ClaseB : public ClaseA {
public:
    void Incrementar() {
    cout << "Suma 2" << endl;
    }
};
int main() {
    ClaseB objeto;
    objeto.Incrementar();
    // objeto.Incrementar(10);
    objeto.ClaseA::Incrementar();
    objeto.ClaseA::Incrementar(10);
    cin.get();
    return 0;
}


En línea

david_BS

Desconectado Desconectado

Mensajes: 99



Ver Perfil WWW
Re: Pregunta sobre herencia y polimorfismo
« Respuesta #1 en: 6 Mayo 2012, 01:51 am »

La única "Incrementar" propia de la clase B no lleva parámetros, y aunque B herede de la clase A, el compilador acepta como referencia de nombre a la de la clase B, osea a la primera y única "Incrementar" de B, ya que el objeto es de clase B.

aparte los constructores son del mismo nombre de la clase, no se a que estás haciendo referencia con tu pregunta sobre los constructores..

en resumen, se trata de un problema a causa de que ambas clases tienen una función propia llamada "Incrementar", por lo que para usar herencia vas a tener que especificar que la referencia es a la clase A, en este caso

Código:
objeto.ClaseA::Incrementar(); 
objeto.ClaseA::Incrementar(10);



En línea

Rodrigosolari

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Pregunta sobre herencia y polimorfismo
« Respuesta #2 en: 6 Mayo 2012, 08:51 am »

me ekivoke crei que eran constructores.. .estuve enfermo yno me percate de ese detalle... osea metodos polimorficos no se heredan si la clase hererada tiene el mismo metodo... si tuviera otro metodo... ajm ajm... por ejemplo void Incrementar1(int a, int b); si podria llamar desde la clase hererada
 
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Pregunta Herencia] Los constructores por defecto se Heredan???
Java
christmo 2 5,156 Último mensaje 26 Octubre 2010, 23:10 pm
por christmo
Pregunta sobre herencia en SmallTalk
Programación General
astinx 0 2,436 Último mensaje 20 Febrero 2012, 22:32 pm
por astinx
Duda sobre herencia en C++
Programación C/C++
NekoOs 4 2,198 Último mensaje 18 Septiembre 2012, 00:42 am
por NekoOs
Duda sobre el tema de Herencia en c++
Programación C/C++
maikelowen 3 1,843 Último mensaje 10 Abril 2014, 21:51 pm
por maikelowen
ayuda con programa con herencia y polimorfismo
Programación General
AGEDEAD 1 1,734 Último mensaje 30 Abril 2014, 20:15 pm
por El Benjo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines