Sobes.tech
Junior — Middle

¿Se puede definir en C++ una clase que contenga solo funciones virtuales puras y que no se pueda crear directamente?

sobes.tech AI

Respuesta de la IA

Sí, en C++ se puede definir una clase que contenga solo funciones virtuales puras, y no se puede crear directamente esa clase. Esa clase se llama clase abstracta. Sirve como interfaz o clase base para los herederos que deben implementar todas las funciones virtuales puras.

Ejemplo:

class Interface {
public:
    virtual void doSomething() = 0; // función virtual pura
    virtual ~Interface() = default;
};

// No se puede crear un objeto de Interface directamente:
// Interface obj; // error de compilación

class Implementation : public Interface {
public:
    void doSomething() override {
        // implementación
    }
};

int main() {
    Implementation impl;
    impl.doSomething();
}