Senior
Existuje v abstraktnej triede konštruktor?
sobes.tech AI
Odpoveď od AI
Áno, abstraktná trieda môže mať konštruktor. Abstraktná trieda je trieda, ktorá nie je určená na priame vytváranie inštancií, ale môže obsahovať implementáciu, vrátane konštruktora.
Konštruktor abstraktnej triedy sa zvyčajne používa na inicializáciu spoločných polí alebo na vykonanie spoločnej logiky, ktorá bude dediť podtriedy.
Príklad v C++:
class AbstractBase {
public:
AbstractBase(int value) : data(value) {}
virtual void doSomething() = 0; // čistá virtuálna funkcia
protected:
int data;
};
class Derived : public AbstractBase {
public:
Derived(int value) : AbstractBase(value) {}
void doSomething() override {
// implementácia
}
};
Tu je konštruktor AbstractBase volaný z konštruktora odvodeného triedy na inicializáciu poľa data. Preto je prítomnosť konštruktora v abstraktnej triede bežnou praxou.