El problema es name hiding.

La solución, un using.

class B
{
public:
   B(){}
   virtual ~B(){}

   using A::Foo;
   Foo(int){}
};

Alguien sabe si puede experimentar efectos secundarios con este using?




On Wed, Apr 30, 2008 at 12:05 PM, personaje <[EMAIL PROTECTED]> wrote:
> Por qué no puedo hacer esto?:
>
>  class A
>  {
>  public:
>    A(){}
>    virtual ~A(){}
>
>    void Foo(){};
>  };
>
>  class B : public A
>  {
>  public:
>    B(){}
>    virtual ~B(){}
>
>    void Foo(int){};
>  };
>
>  int main()
>  {
>    B *p = new B;
>    p->Foo();
>    delete p;
>    return 0;
>  }
>
>  el compilador se queja con :
>  error: no matching function for call to 'B::Foo()'
>  note: candidates are: virtual void B::Foo(int)
>
>  Hay manera de evitar este problema?
>
>  Saludos
>

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

Responder a