Il semble que je ne puisse pas utiliser une classe de base comme paramètre de fonction. Est-ce que j'ai gâché mon héritage?
J'ai le suivant dans ma principale:
int some_ftn(Foo *f) { /* some code */ };
Bar b;
some_ftn(&b);
Et la classe Bar héritant de Foo de la manière suivante:
class Bar : Foo
{
public:
Bar();
//snip
private:
//snip
};
Cela ne devrait-il pas fonctionner? 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'héritage par défaut d'un class
en C++ est private
, de sorte que les membres public
et protected
de la classe de base sont limités à private
. struct
l'héritage, par contre, est public
par défaut.
Par défaut, l'héritage est privé. Vous devez utiliser explicitement public
:
class Bar : public Foo