Maison > développement back-end > C++ > Comment implémenter des interfaces en C à l'aide de classes de base abstraites et de destructeurs virtuels ?

Comment implémenter des interfaces en C à l'aide de classes de base abstraites et de destructeurs virtuels ?

Patricia Arquette
Libérer: 2024-12-21 18:40:11
original
633 Les gens l'ont consulté

How Do I Implement Interfaces in C   Using Abstract Base Classes and Virtual Destructors?

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
    }
};
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal