No lo podes hacer por algunos motivos y aca van algunos...

1) La herencia que definis es privada es decir que todos los metodos y
atributos que heredas de A son privados, y por ende no van a formar parte de
tu interfaz de tu clase, deberias heredar publicamente de la clase A.

2) Si queres overridear o sobreescribir el metodo Foo de la clase A en la
clase B dicho metodo tiene que ser definido virftual en la clase A sino por
mas que lo sobreescribas en la clase B si usas algo asi;

A* instancia = new B();

instancia->Foo();

Va a llamar al metodo de A porque no es virtual y la invocacion del metodo
termina ahi, si lo definis virtual se crea una tabla de metodos virtuales o
vtable y luego dinamicamente por late binding sabe que estas llamando a un
metodo virtual, determina en runtime el tipo de objeto que es En runtime es
un objeto de tipo B e invoca al metodo de B.

Saludos
Pablo

2008/4/30 personaje <[EMAIL PROTECTED]>:

> 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
>



-- 
Si yo tengo una manzana y tú tienes una manzana, luego de intercambiarlas
ambos tenemos una manzana. Si yo tengo una idea y tú tienes una idea, luego
de intercambiarlas ambos tenemos dos ideas.

Apoyando a la comunidad Open Source.

Facebook prifile:
http://www.facebook.com/profile.php?id=1244601012
Orkut prifile:
http://www.orkut.com/Profile.aspx?uid=12594853021246287134
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a