Junior — Middle
Lehet-e C++-ban olyan osztályt definiálni, amely csak tiszta virtuális függvényeket tartalmaz, és amelyet nem lehet közvetlenül létrehozni?
sobes.tech MI
Válasz az MI-től
Igen, C++-ban lehet olyan osztályt definiálni, amely csak tiszta virtuális függvényeket tartalmaz, és ilyen osztályt nem lehet közvetlenül létrehozni. Ezt az osztályt absztrakt osztálynak nevezik. Szolgál interfészként vagy alap osztályként azok számára, akiknek minden tiszta virtuális függvényt implementálniuk kell.
Példa:
class Interface {
public:
virtual void doSomething() = 0; // tiszta virtuális függvény
virtual ~Interface() = default;
};
// Nem lehet közvetlenül példányosítani az Interface-t:
// Interface obj; // fordítási hiba
class Implementation : public Interface {
public:
void doSomething() override {
// implementáció
}
};
int main() {
Implementation impl;
impl.doSomething();
}