Sobes.tech
Senior

Kas abstraktses klassis on konstruktor?

sobes.tech AI

Vastus AI-lt

Jah, abstraktset klassil võib olla konstruktor. Abstraktne klass on klass, mis ei ole mõeldud otse eksemplaride loomiseks, kuid võib sisaldada rakendust, sealhulgas konstruktorit.

Abstraktse klassi konstruktorit kasutatakse tavaliselt ühiste väljade algväärtustamiseks või ühise loogika täitmiseks, mis pärandatakse alamklassidele.

Näide C++-s:

class AbstractBase {
public:
    AbstractBase(int value) : data(value) {}
    virtual void doSomething() = 0; // puhas virtuaalfunktsioon
protected:
    int data;
};

class Derived : public AbstractBase {
public:
    Derived(int value) : AbstractBase(value) {}
    void doSomething() override {
        // rakendus
    }
};

Siin kutsutakse AbstractBase konstruktor välja alamklassi konstruktorist, et algväärtustada välja data. Seega on konstruktor olemasolu abstraktsetes klassides tavaline praktika.