Est-il possible en C++ pour avoir une fonction membre qui est à la fois statique et virtuel? Apparemment, il n'y a pas de moyen simple de le faire (static virtual member();
est un complie d'erreur), mais est-il au moins un moyen d'obtenir le même effet?
I. E:
struct Object
{
struct TypeInformation;
static virtual const TypeInformation &GetTypeInformation() const;
};
struct SomeObject : public Object
{
static virtual const TypeInformation &GetTypeInformation() const;
};
Il est logique d'utiliser GetTypeInformation()
à la fois sur une instance (object->GetTypeInformation()
) et sur une classe (SomeObject::GetTypeInformation()
), ce qui peut être utile pour comparsions et vital pour les modèles.
La seule façon que je peux penser implique l'écriture de deux fonctions, une fonction et une constante, par classe, ou de l'utilisation de macros.
D'autres solutions?