personaje, el 20 de diciembre a las 13:43 me escribiste:
> > No. Y no tiene sentido, cuando llames a c.Run(1) a cual llama? Y si no
> > llamás a los Run del padre, menos sentido le veo.
>
> la idea es así:
>
> A* pa;
> B* pb;
> C* pc = new C;
>
> pa = pc;
> pb = pc;
>
> pa->Run(); // corre la versión A
> pb->Run(); // corre la versión B
Entonces vos no querés que sea virtual! El virtual es justamente lo que
hace que pa->Run() llame a C::Run en vez de a A::Run!
> > Yo creo que tu principal problema no como catso te metiste en una
> > situación donde tenés herencia múltiple, con 2 métodos con el mismo nombre
> > en las clases padres y *encima* querés llamar a cada uno de ellos con una
> > virtualidad mágica inexistente =P
>
> tengo un template, con 2 especializaciones, y una clase que hereda de
> las dos especializaciones...
No lo hagas virtual y vas a obtener el resultado que buscás, por obscuro
que sea =P
Ejemplo funcionando:
#include <cstdio>
struct A
{
const char* n;
A(const char* n): n(n) { printf("A::A(%s)\n", n); }
~A() { printf("A::~A(%s)\n", n); }
void f() { printf("A::f()\n"); }
};
struct B
{
const char* m;
B(const char* m): m(m) { printf("B::B(%s)\n", m); }
~B() { printf("B::~B(%s)\n", m); }
void f() { printf("B::f()\n"); }
};
struct C: A, B
{
C(const char* n): A(n), B(n) { printf("C::C(%s)\n", n); }
~C() { printf("C::~C(%s)\n", n); }
};
int main()
{
A* pa;
B* pb;
C c("c");
pa = &c;
pb = &c;
pa->f();
pb->f();
return 0;
}
--
Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/
----------------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------------
Si ella es la flor, yo soy la espina
Si ella es quien florece, yo quien se marchita
Y estamos en eclipse total, y estamos en eclipse total
Completamente cruzados, completamente cruzados
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion