Junior — Middle
Kan in C++ een klasse worden gedefinieerd die alleen pure virtuele functies bevat en niet direct kan worden aangemaakt?
sobes.tech AI
Antwoord van AI
Ja, in C++ is het mogelijk om een klasse te definiëren die alleen pure virtuele functies bevat, en zo'n klasse kan niet rechtstreeks worden aangemaakt. Zo'n klasse wordt een abstracte klasse genoemd. Het dient als interface of basisklasse voor afgeleiden die alle pure virtuele functies moeten implementeren.
Voorbeeld:
class Interface {
public:
virtual void doSomething() = 0; // pure virtuele functie
virtual ~Interface() = default;
};
// Het is niet mogelijk om een object van Interface rechtstreeks te maken:
// Interface obj; // compilatiefout
class Implementation : public Interface {
public:
void doSomething() override {
// implementatie
}
};
int main() {
Implementation impl;
impl.doSomething();
}