Avatar ·

¿Cómo declarar una interfaz en C++? (funciones virtuales puras y clases abstractas)

¡Hola! Acabo de empezar a aprender C++ después de Java, y me confunde mucho la ausencia de la palabra clave `interface`, como en Java o C#. En Java solía hacer esto: ```java public interface Drawable { void draw(); void resize(int width, int height); } ``` Pero en C++ no encuentro un análogo directo. Sé que en C++ hay clases abstractas con funciones virtuales puras, pero no estoy seguro de cómo declararlas y usarlas correctamente. Por ejemplo, intenté escribir este código: ```cpp class Drawable { public: virtual void draw() = 0; virtual void resize(int width, int height) = 0; }; ``` Pero tengo algunas preguntas: 1. ¿Necesito agregar un destructor virtual? Si es así, ¿debe ser puramente virtual? 2. ¿Necesito evitar la copia de objetos de esta clase? 3. ¿Cómo heredar correctamente de esta clase y sobrescribir los métodos? 4. ¿Existen algunas "best practices" para declarar interfaces en C++? He oído sobre la herencia múltiple y el rombo