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();
}