| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
rockman Ens

Registrado: 13 Mar 2004Mensajes: 44
|
Publicado: Lun 04 Oct, 2004 1:15 pm Asunto: Herencia visual |
|
|
Hola a todos,
Resulta que estoy usando herencia visual, creando frames que hereda las propiedades de otros frames.
Del tipo....
| Código: |
class Tframe_fecha_normal : public Tframe
{
...
public: // User declarations
void reset();
}
class Tframe_fecha_normal_horas : public Tframe_fecha_normal
{
....
public:
void reset();
}
|
El segundo frame es igual que el primero pero con algunos componentes mas.
A mi me gustaría que desde la funcion reset del frame hijo se llame a la función frame de su padre... por así decirlo.
He probado a hacer esto:
| Código: |
void Tframe_fecha_normal_horas::reset()
{
((Tframe_fecha_normal *)this)->reset();
......
}
|
Pero esto no funciona, ¿alguien me puede ayudar?
}[/code] |
|
| Volver arriba |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Lun 04 Oct, 2004 3:02 pm Asunto: |
|
|
Deberías usar la clausula super para referirte a la clase base de la cual se hereda. _________________ OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins. |
|
| Volver arriba |
|
 |
rockman Ens

Registrado: 13 Mar 2004Mensajes: 44
|
Publicado: Lun 04 Oct, 2004 3:31 pm Asunto: |
|
|
Muchisimas acias por tu pronta respuesta, pero no se si te he entendido muy bien.
¿Te refieres a hacer esto? Por super no me viene nada, no se si te refieres a Parent...
| Código: |
void Tframe_fecha_normal_horas::reset()
{
this->Parent->reset();
}
|
Esto no funciona, porque yo estos frames los creo desde el formulario principal:
| Código: |
frame_fecha = new Tframe_fecha_normal_horas(this); //this seria el formulario principal, por lo que no podría usar Parent
|
[/list] |
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Lun 04 Oct, 2004 4:50 pm Asunto: |
|
|
Prueba hgaciendo algo asi:
| Código: |
void Tframe_fecha_normal_horas::reset()
{
TFrame_fecha_normal::reset();
}
|
No lo he probado, espero te funcione... lo que se refiere XyVy con super, es porque ne Java, puedes hacer referencia a la clase padre con esta clausula, pero hasta donde yo sé, en c++ no se aplica
NOTA: Recuerda que el metodo reset de la clase padre debe estar declarada como Publica o Protegida, de tal manera que la clase hija pueda acceder a ella... _________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| Volver arriba |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Lun 04 Oct, 2004 5:25 pm Asunto: |
|
|
Es cierto me resvalé, la forma correcta es como indica LordNemesis, aunque lo curioso es que Visual C++ si lo soporta, pero como algo especifico, no del standard C++.
Ciao y perdona, un mal lapsus! _________________ OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins. |
|
| Volver arriba |
|
 |
rockman Ens

Registrado: 13 Mar 2004Mensajes: 44
|
Publicado: Mar 05 Oct, 2004 6:46 am Asunto: |
|
|
Ok. Funciona perfectamente LordNemesis
Muchisimas gracias a los dos. |
|
| Volver arriba |
|
 |
|