relaciones programacion poo polimorfismo herencia entre ejemplos constructores clases c++ inheritance

programacion - polimorfismo c++



Herencia de C++-¿base inaccesible? (2)

Por defecto, la herencia es privada. Tienes que usar explícitamente public :

class Bar : public Foo

Parece que no puedo usar una clase base como parámetro de función, ¿he estropeado mi herencia?

Tengo lo siguiente en mi principal:

int some_ftn(Foo *f) { /* some code */ }; Bar b; some_ftn(&b);

Y la clase Bar hereda de Foo de tal manera:

class Bar : Foo { public: Bar(); //snip private: //snip };

¿Esto no debería funcionar? No parece poder hacer esa llamada en mi función principal


Tienes que hacer esto:

class Bar : public Foo { // ... }

El tipo de herencia predeterminado de una class en C ++ es private , por lo que cualquier miembro public y protected de la clase base está limitado a private . struct herencia de struct por otro lado es public por defecto.