Senior
Υπάρχει κατασκευαστής σε μια αφηρημένη κλάση;
sobes.tech AI
Απάντηση από AI
Ναι, μια αφηρημένη κλάση μπορεί να έχει κατασκευαστή. Μια αφηρημένη κλάση είναι μια κλάση που δεν προορίζεται να δημιουργεί άμεσα στιγμιότυπα, αλλά μπορεί να περιέχει μια υλοποίηση, συμπεριλαμβανομένου και ενός κατασκευαστή.
Ο κατασκευαστής μιας αφηρημένης κλάσης χρησιμοποιείται συνήθως για την αρχικοποίηση κοινών πεδίων ή την εκτέλεση κοινής λογικής που θα κληρονομηθεί από τις υποκλάσεις.
Παράδειγμα σε C++:
class AbstractBase {
public:
AbstractBase(int value) : data(value) {}
virtual void doSomething() = 0; // καθαρή εικονική συνάρτηση
protected:
int data;
};
class Derived : public AbstractBase {
public:
Derived(int value) : AbstractBase(value) {}
void doSomething() override {
// υλοποίηση
}
};
Εδώ, ο κατασκευαστής AbstractBase καλείται από τον κατασκευαστή της υποκλάσης για την αρχικοποίηση του πεδίου data. Συνεπώς, η ύπαρξη κατασκευαστή σε μια αφηρημένη κλάση είναι μια κανονική πρακτική.