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>

ahora si; creo que queda más claro 8*D y como dijo Luca al principio
"Virtualidad mágica inexistente"...

aunque quizás se podría hacer algo con magia de templates...

Saludos

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

Responder a