Les membres C peuvent-ils être à la fois statiques et virtuels ?
En C, les membres ne peuvent pas être déclarés à la fois statiques et virtuels. Compiler une déclaration comme static virtual member(); entraînera une erreur.
Cependant, vous pouvez obtenir un effet similaire en utilisant les méthodes suivantes :
Voici un exemple :
<code class="cpp">struct Object { static const TypeInformation& GetTypeInformation(); virtual const TypeInformation& GetTypeInformation() const; }; struct SomeObject : public Object { static const TypeInformation& GetTypeInformation(); virtual const TypeInformation& GetTypeInformation() const override; };</code>
Cela vous permet d'appeler GetTypeInformation() à la fois sur des objets (object-> ;GetTypeInformation()) et sur les classes (SomeObject::GetTypeInformation()). Object::GetTypeInformation() renverra l'implémentation de la classe de base, tandis que SomeObject::GetTypeInformation() appellera la version remplacée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!