Sobes.tech
Junior — Middle

È possibile definire in C++ una classe che contiene solo funzioni virtuali pure e che non può essere creata direttamente?

sobes.tech AI

Risposta dell'AI

Sì, in C++ è possibile definire una classe che contiene solo funzioni virtuali pure, e tale classe non può essere creata direttamente. Questa classe è chiamata classe astratta. Serve come interfaccia o classe base per i discendenti che devono implementare tutte le funzioni virtuali pure.

Esempio:

class Interface {
public:
    virtual void doSomething() = 0; // funzione virtuale pura
    virtual ~Interface() = default;
};

// Non è possibile creare un oggetto Interface direttamente:
// Interface obj; // errore di compilazione

class Implementation : public Interface {
public:
    void doSomething() override {
        // implementazione
    }
};

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