Junior — Middle
Je možné v C++ definovať triedu obsahujúcu iba čisté virtuálne funkcie a ktorú nie je možné vytvoriť priamo?
sobes.tech AI
Odpoveď od AI
Áno, v C++ je možné definovať triedu, ktorá obsahuje iba čisté virtuálne funkcie, a takúto triedu nie je možné priamo vytvoriť. Táto trieda sa nazýva abstraktná trieda. Slúži ako rozhranie alebo základná trieda pre dedičov, ktorí musia implementovať všetky čisté virtuálne funkcie.
Príklad:
class Interface {
public:
virtual void doSomething() = 0; // čistá virtuálna funkcia
virtual ~Interface() = default;
};
// Nie je možné priamo vytvoriť objekt Interface:
// Interface obj; // chyba kompilácie
class Implementation : public Interface {
public:
void doSomething() override {
// implementácia
}
};
int main() {
Implementation impl;
impl.doSomething();
}