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