Je semble être incapable d’utiliser une classe de base comme paramètre de fonction, ai-je foiré mon inheritance?
J’ai le suivant dans ma main:
int some_ftn(Foo *f) { /* some code */ }; Bar b; some_ftn(&b);
Et la classe Bar héritant de Foo de cette manière:
class Bar : Foo { public: Bar(); //snip private: //snip };
Est-ce que cela ne devrait pas marcher? Je ne semble pas être capable de faire cet appel dans ma fonction principale
Tu dois faire ca:
class Bar : public Foo { // ... }
Le type d’inheritance par défaut d’une class
en C ++ étant private
, tous public
membres public
et protected
de la classe de base sont limités à private
. struct
inheritance struct
est par contre public
par défaut.
Par défaut, l’inheritance est privé. Vous devez utiliser explicitement public
:
class Bar : public Foo