Maison >développement back-end >C++ >Comment définir une interface en C à l'aide de classes de base abstraites ?
En C , une interface peut être déclarée à l'aide d'une classe de base abstraite (ABC). Un ABC est une classe avec au moins une méthode virtuelle pure. Une méthode virtuelle pure est une méthode déclarée avec le mot-clé = 0.
class IDemo { public: virtual ~IDemo() {} virtual void OverrideMe() = 0; };
Dans l'exemple ci-dessus, IDemo est un ABC avec une méthode virtuelle pure nommée OverrideMe. Toute classe qui hérite d'IDemo doit définir une implémentation pour OverrideMe. Sinon, IDemo peut être utilisé pour représenter une interface qui peut être implémentée par différentes classes concrètes.
class Parent { public: virtual ~Parent(); }; class Child : public Parent, public IDemo { public: virtual void OverrideMe() { // Do stuff } };
Une exception à la liste des méthodes virtuelles pures dans une interface consiste à ajouter un destructeur virtuel. Cela permet de transmettre la propriété du pointeur à une autre partie sans exposer la classe dérivée concrète. Le destructeur n'a rien à faire puisque l'interface n'a pas de membres concrets.
class IDemo { public: virtual ~IDemo() {} virtual void OverrideMe() = 0; };
En conclusion, une interface peut être utilisée pour représenter les propriétés et méthodes abstraites d'une classe. En créant un ABC avec des méthodes virtuelles pures, vous pouvez vous assurer que toute classe qui en hérite doit définir des implémentations pour les méthodes d'interface. De plus, l'ajout d'un destructeur virtuel à l'interface peut permettre un transfert sécurisé de propriété du pointeur.
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!