¿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
No answers yet.
Inicia sesión para dejar una respuesta
Blogs