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)
| | |-+  enums heredados ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: enums heredados ?  (Leído 1,637 veces)
digimikeh

Desconectado Desconectado

Mensajes: 191


Ver Perfil
enums heredados ?
« en: 5 Octubre 2019, 04:44 am »

Buenas noches:

De la misma forma que se puede virtualizar una función y sobreemontarla en alguna clase hija... me pregunto si es posible hacer lo mismo con los enums....

por ejemplo:

Código:
class padre{

protected:
     virtual enum mis_objetos{    //virtual aqui?
          objPrincipal = 99
     };

     virtual void una_funcion(mis_objetos mo){
          //hacer algunas cosas previas que sirven para todas las subclases//
     }

}

Código:
class hija1 : public padre{

protected:
     enum mis_objetos override{
          obj0 = 0,
          obj1
     };

     void una_funcion(ms_objetos mo) override;
}


Código:
class hija2 : public padre{

protected:
     enum mis_objetos override{
          obj50 = 3,
          obj55
     };

     void una_funcion(ms_objetos mo) override;
}

Como verán, cada clase tiene sus propios elementos enum, sin embargo, para que la función una_funcion(mis_objetos) pueda sobremontarse, es necesario que el enum exista en el padre..

Es posible hacer esto? (con el codigo estoy especulando, lo mas seguro que tenga errores)

Gracias.


« Última modificación: 5 Octubre 2019, 05:12 am por digimikeh » En línea

Dungeons & dragons;
dragons.Attack();
ThunderCls


Desconectado Desconectado

Mensajes: 455


Coder | Reverser | Gamer


Ver Perfil WWW
Re: enums heredados ?
« Respuesta #1 en: 16 Octubre 2019, 21:52 pm »

Segun tengo entendido los tipos de datos enum no soportan herencia/polimorfismo, al menos en C++. Lo que se me ocurre es que definas ambos enums (clase base/clase especializada) y accedas a ellos con el scope resolution operator :: segun necesites una version o la otra

padre::mis_objetos
hija1::mis_objetos


En línea

-[ "…I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Eliminar controles heredados:S
Programación Visual Basic
syaoran 0 936 Último mensaje 7 Febrero 2008, 22:25 pm
por syaoran
[C#] [VB.NET] Enums con valores duplicados
.NET (C#, VB.NET, ASP)
Eleкtro 2 2,640 Último mensaje 10 Noviembre 2013, 18:45 pm
por Eleкtro
Clase con Enums
Java
Baal_30 6 3,402 Último mensaje 12 Abril 2015, 00:18 am
por Baal_30
Enums inside of Structs,compile error
Programación C/C++
aurquiel 2 1,400 Último mensaje 26 Julio 2018, 14:39 pm
por aurquiel
Mantener sistemas heredados y reescribir código incorrecto, tareas que lastran..
Noticias
wolfbcn 1 958 Último mensaje 15 Septiembre 2018, 18:36 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines