Junior — Middle
Lze v C++ definovat třídu obsahující pouze čistě virtuální funkce a kterou nelze přímo vytvořit?
sobes.tech AI
Odpověď od AI
Ano, v C++ lze definovat třídu obsahující pouze čistě virtuální funkce, a takovou třídu nelze přímo vytvořit. Tato třída se nazývá abstraktní třída. Slouží jako rozhraní nebo základní třída pro dědice, kteří musí implementovat všechny čistě virtuální funkce.
Příklad:
class Interface {
public:
virtual void doSomething() = 0; // čistě virtuální funkce
virtual ~Interface() = default;
};
// Nelze přímo vytvořit objekt Interface:
// Interface obj; // chyba kompilace
class Implementation : public Interface {
public:
void doSomething() override {
// implementace
}
};
int main() {
Implementation impl;
impl.doSomething();
}