On Dec 20, 2007 3:14 PM, Lautaro Cozzani <[EMAIL PROTECTED]> wrote:
>
> On Dec 20, 2007 3:10 PM, personaje <[EMAIL PROTECTED]> wrote:
> > On Dec 20, 2007 2:55 PM, Lautaro Cozzani <[EMAIL PROTECTED]> wrote:
> >
> > > es que si llamas al de A o al de B no estarias reimplementando nada...
> > > en el caso que mostraste estaria funcionando como queres vos y sin
> > > reimplementar nada... por ahi no entendemos lo que queres decir...
> > > porque no pasas el ejemplo mas concreto?
> > >
> > >
> >
> > va
> >
> > template<class T>
> > class A
> > {
> > public:
> >   A(){}
> >   virtual ~A(){}
> >   virtual void Run()=0;
> > };
> >
> > class C : public A<int>, public A<float>
> > {
> > public:
> >   A(){}
> >   virtual ~A(){}
> >   virtual void Run(){std::cout<<"RunC desde A<int>"<<std::endl;}
> >   virtual void Run(){std::cout<<"RunC desde B<float>"<<std::endl;}
> > };
> >
> >
> > int main()
> > {
> >    A<int> *pAi;
> >    A<float> *pAf;
> >    C *pC = new C;
> >    pAi = pC;
> >    pAf = pC;
> >    pAi->Run();
> >    pAf->Run();
> >    return 0;
> > }
> >
> > y la salida sería:
> >
> > RunC desde A<int>
> > RunC desde A<float>
>
> no se porque qucieras implementar esos metodos desde C, ya que
> realmente serian de los padres (¿padre y madre?)
>

porque tengo apuntado desde dos lugares distintos como A<int> y
A<float> y quiero reaccionar de manera diferente según con qué tipo de
puntero se realiza la llamada... es como un polimorfismo a la inversa
o algo más vizarro!

_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a