Fondamentalement, je veux la fonctionnalité du compilateur C# de son mot-clé override
dans mon code C++.Existe-t-il un moyen de marquer (au moment de la compilation) les méthodes "surchargées" dont les signatures ne correspondent pas à la signature de base?
class Base
{
virtual int foo(int) const;
};
class Derived : public Base
{
virtual int foo(int); // wanted to override Base, but forgot to declare it const
};
Comme nous le savons tous, le code ci-dessus se compilera correctement, mais donnera un comportement étrange à l'exécution. J'aimerais mon compilateur C++ pour attraper ma mauvaise implémentation avec quelque chose comme le mot-clé override
de C#. Y a-t-il des mots-clés comme "override" qui sont introduits en C++, ou sommes-nous bloqués avec #define override virtual
pour montrer notre intention? (en fait, je ne fais pas cela - je déteste utiliser le préprocesseur pour "étendre" la langue).
des excuses à Naveen - vôtre est la bonne réponse "future"; Cependant, pour mes besoins actuels (j'utilise VS2005), cela fonctionne !! J'ai marqué cette réponse comme "répondant" à ma question, mais la réponse de +1 Naveen – franji1