4 votes

Dissimuler une certaine fonction avec le même nom et une signature différente de la classe de base dans la classe dérivée.

class Base
{
public:
    virtual void f(int)
    {
        printf("Base f(int)\n");
    }

    virtual void f(int, int)
    {
        printf("Base f(int, int)\n");
    }
};

class Der : public Base
{
public:
    using Base::f;

    virtual void f(double)
    {
        printf("Der f(double)\n");
    }
};

Dans ce cas, je suis donc en mesure d'utiliser les deux fonctions de la classe de base. Mais est-il possible d'autoriser l'utilisation dans la classe dérivée uniquement de certaines méthodes surchargées de la classe de base ? Par exemple, autoriser l'utilisation de f(int), mais pas de f(int, int).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X