Sobes.tech
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();
}