Comment vérifier si C++ méthode abstraite est définie lors de l'exécutionComment vérifier si la méthode abstraite C de est défini lors de l'exécution
class ABase{
public:
virtual void do1() = 0;
};
class BBase: public ABase{
public:
virtual void do1(){}
};
class CBase: public ABase{
public:
};
ABase * base = rand() % 2 ? new BBase() : new CBase();
if(&(base->do1) != 0)
base->do1();
Cela donne une erreur.
Merci, Max
Non. Et quelle serait l'utilité? –
Il n'y a pas de méthode virtuelle ici. Voir ma réponse ci-dessous. –
Bien sûr, cela donne des erreurs - erreurs __compilation__. Ou est-ce que le 'virtuel' manquant juste une typo/pasto, et vous parlez ou __runtime errors__? Ou est-ce des erreurs de compilation __ dans cette comparaison amusante (et fausse)? Si oui, lesquels? Il est impossible de dire avec une telle question bâclée.Je vote pour le clore, car on ne peut raisonnablement répondre à la question. – sbi