• [^] # Re: C++ 2011 ?

    Posté par . En réponse au journal Visiteurs en C++. Évalué à 4.

    C'est la même chose qu'en Java: ça sert à détecter les surcharges involontaires. Par exemple

    struct Base {
     virtual void traiter_truc(Truc& truc);
    };
    struct Derived : Base {
     virtual void traiter_truc(Truc* truc);
    };
    
    

    Ça compile parfaitement, mais Derived::traiter_truc() ne redéfinit pas Base::traiter_truc(), et si on active pas les warnings qui vont bien dans son compilateur (qui sont chiants car parfois, c'est voulu), on s'en rend compte qu'à l'exécution… ou pas.

    Si Derived::traiter_truc était marqué en override, il y aurai une erreur de compilation.