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.