Comment appeler la méthode de la classe de base en C++ ?


Don Baka

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.

molbdnilo

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, thisexplicitez 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.

Articles connexes


Comment appeler une méthode en dehors de la classe

JoeDoe Est-il possible d'appeler une méthode en dehors de la classe, en utilisant une instance existante? Je veux lire les données du capteur et essayer de les envoyer via une connexion BT (déjà connectée et envoyant d'autres informations) mais je ne peux pas