Maison >développement back-end >C++ >Comment implémenter des interfaces en C à l'aide de classes de base abstraites et de destructeurs virtuels ?
Implémentation d'interfaces en C
Question :
Comment puis-je créer une classe représentant une interface en C ? Est-ce simplement une classe de base abstraite ?
Réponse :
Au-delà du concept de méthodes virtuelles pures pour définir une interface, introduit par le répondant précédent, pensez à ajouter une classe de base virtuelle destructeur au mix. Cela vous permet de transmettre la propriété d'un pointeur à une autre partie tout en masquant la classe dérivée concrète sous-jacente. Bien que contre-intuitif, déclarer une fonction à la fois virtuelle et en ligne est autorisé.
class IDemo { public: virtual ~IDemo() {} virtual void OverrideMe() = 0; }; class Parent { public: virtual ~Parent(); }; class Child : public Parent, public IDemo { public: virtual void OverrideMe() { // Implementation details } };
Notez qu'un corps de destructeur explicite est facultatif. Certains compilateurs ont du mal à optimiser les destructeurs vides, il est donc généralement préférable de s'appuyer sur l'implémentation par défaut.
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!