Comment appeler la méthode de la classe de base en C++ ?
Je travaille sur un programme C++. Pour l'un des cas d'utilisation, j'ai une classe dérivée de sa classe de modèle. Donc, je me demande comment nous pouvons appeler la méthode de classe de base à l'intérieur de la méthode de classe dérivée ?
Exemple:
template <typename base>
struct derived : public base
{
void aFunction()
{
// need to call a base function() here
}
};
L'un des moyens pourrait être quelque chose comme base::aBaseFunction()
, mais je ne suis pas sûr?
Je suis nouveau dans la programmation POO, j'ai donc hâte d'apprendre un nouveau concept à travers cet énoncé de problème.
Si vous souhaitez utiliser explicitement le membre de la base, rendez le type explicite comme vous l'avez trouvé :
template <typename base>
struct derived : public base
{
void aFunction()
{
base::function();
}
};
Si vous préférez avoir le comportement habituel de recherche non qualifiée, this
explicitez plutôt :
template <typename base>
struct derived : public base
{
void aFunction()
{
this->function();
}
};
Ces deux éléments se comportent exactement comme ils le font dans les non-modèles.