Sobes.tech
Senior

Vai abstraktajā klasē ir konstruktoru?

sobes.tech AI

Atbilde no AI

Jā, abstraktā klasē var būt konstruktoru. Abstraktā klase ir klase, kas nav paredzēta tieši izveidot eksemplārus, bet var saturēt realizāciju, tostarp konstruktoru.

Abstraktās klases konstruktoru parasti izmanto kopīgu lauku inicializēšanai vai kopīgas loģikas izpildei, kas tiks mantoja no apakšklasēm.

Piemērs C++:

class AbstractBase {
public:
    AbstractBase(int value) : data(value) {}
    virtual void doSomething() = 0; // tīra virtuāla funkcija
protected:
    int data;
};

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

Šeit, AbstractBase konstruktoru izsauc no apakšklases konstruktoru, lai inicializētu lauku data. Tādēļ konstruktoru klātbūtne abstraktā klasē ir normāla prakse.