Avatar ·

Comment déclarer une interface en C++ ? (fonctions virtuelles pures et classes abstraites)

Bonjour ! Je viens de commencer à apprendre le C++ après Java, et je suis très confus par l'absence du mot-clé `interface`, comme en Java ou C#. En Java, j'avais l'habitude de faire ceci : ```java public interface Drawable { void draw(); void resize(int width, int height); } ``` Mais en C++, je ne trouve pas d'équivalent direct. Je sais qu'en C++ il existe des classes abstraites avec des fonctions virtuelles pures, mais je ne suis pas sûr de comment les déclarer et les utiliser correctement. Par exemple, j'ai essayé d'écrire ce code : ```cpp class Drawable { public: virtual void draw() = 0; virtual void resize(int width, int height) = 0; }; ``` Mais j'ai des questions : 1. Faut-il ajouter un destructeur virtuel ? Si oui, doit-il être purement virtuel ? 2. Faut-il empêcher la copie des objets de cette classe ? 3. Comment hériter correctement de cette classe et redéfinir les méthodes ? 4. Existe-t-il des "best practices" pour déclarer des interfaces en C++ ? J'ai entendu parler de l'héritage multiple et du diamant.