Junior — Middle
Μπορεί να οριστεί σε C++ μια κλάση που περιέχει μόνο καθαρές εικονικές συναρτήσεις και δεν μπορεί να δημιουργηθεί άμεσα;
sobes.tech AI
Απάντηση από AI
Ναι, στη C++ μπορείς να ορίσεις μια κλάση που περιέχει μόνο καθαρές εικονικές συναρτήσεις, και μια τέτοια κλάση δεν μπορεί να δημιουργηθεί άμεσα. Αυτή η κλάση ονομάζεται αφηρημένη κλάση. Χρησιμεύει ως διεπαφή ή βασική κλάση για τους κληρονόμους που πρέπει να υλοποιήσουν όλες τις καθαρές εικονικές συναρτήσεις.
Παράδειγμα:
class Interface {
public:
virtual void doSomething() = 0; // καθαρή εικονική συνάρτηση
virtual ~Interface() = default;
};
// Δεν μπορεί να δημιουργηθεί αντικείμενο της Interface άμεσα:
// Interface obj; // σφάλμα μεταγλώττισης
class Implementation : public Interface {
public:
void doSomething() override {
// υλοποίηση
}
};
int main() {
Implementation impl;
impl.doSomething();
}