Lors de la compilation sur GCC, j'obtiens l'erreur : spécificateur pur sur la définition de fonction, mais pas lorsque je compile le même code en utilisant VS2005.spécificateur pur sur la fonction-définition
class Dummy {
//error: pure-specifier on function-definition, VS2005 compiles
virtual void Process() = 0 {};
};
Mais quand la définition de cette fonction virtuelle pure n'est pas en ligne, cela fonctionne:
class Dummy
{
virtual void Process() = 0;
};
void Dummy::Process()
{} //compiles on both GCC and VS2005
Qu'est-ce que les moyens d'erreur? Pourquoi je ne peux pas le faire en ligne? Est-il légal d'éluder le problème de compilation comme indiqué dans le deuxième exemple de code?
Oui, il le devrait, si vous en avez besoin. C'est parfaitement légal d'en avoir un. –
Mais avec un corps ce serait juste une fonction virtuelle. Que devrait faire une fonction virtuelle pure avec un corps ??? –
@Martin Peut-être rien - si vous déclarez un destructeur virtuel pur (par exemple) vous devez lui donner un corps. –