64 votes

Comment appliquer le mot clé 'override'?

Existe-t-il un moyen d'imposer l'utilisation du mot clé C ++ 11 override dans Visual C ++ 2012?

(Par exemple, si j'oublie de dire override , alors je veux obtenir un avertissement / une erreur.)

22voto

Jonathan Wakely Points 45593

C++11 est presque ce que vous voulez.

À l'origine, l' override mot-clé faisait partie d'une proposition (N2928) qui comprenait également la possibilité d'appliquer son utilisation:

class A
{
  virtual void f();
};

class B [[base_check]] : public A
{
    void f();  // error!
};

class C [[base_check]] : public A
{
  void f [[override]] ();  // OK
};

L' base_check attribut serait faire une erreur de remplacer une fonction virtuelle sans l'aide de l' override mot-clé.

Il y avait aussi un hiding attribut qui indique une fonction masque fonctions dans la classe de base. Si base_check est utilisé et une fonction, se cache l'un à partir de la classe de base sans l'aide d' hiding c'est une erreur.

Mais la plupart de la proposition a été abandonnée et seule l' final et override fonctionnalités ont été conservés, les "identificateurs avec une signification particulière" plutôt que sur les attributs.

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