Sobes.tech
Junior — Middle

El tudná magyarázni, mi az az absztrakt osztály, és miben különbözik egy normál osztálytól?

sobes.tech MI

Válasz az MI-től

Egy absztrakt osztály olyan osztály, amelyet nem szándékoznak közvetlen példányosítani, hanem más osztályok alapjaként szolgál. C++-ban az absztrakt osztályt legalább egy tiszta virtuális függvény jelenléte határozza meg.

Az absztrakt osztály és a normál osztály közötti különbségek:

  • Nem lehet közvetlenül létrehozni egy absztrakt osztály objektumát.
  • Legalább egy tiszta virtuális függvényt tartalmaz, amelyet az örökölt osztályoknak kell megvalósítaniuk.
  • Az interfész és az általános funkcionalitás meghatározására szolgál, amelyet az alosztályoknak örökölniük kell.

Példa:

class AbstractBase {
public:
    virtual void doSomething() = 0; // tiszta virtuális függvény
};

class Derived : public AbstractBase {
public:
    void doSomething() override {
        // megvalósítás
    }
};

// AbstractBase obj; // hiba, nem lehet absztrakt osztály példányát létrehozni
Derived d; // helyes