Sobes.tech
Junior — Middle

Πώς μπορεί να οριστεί ένα όριο στον αριθμό των δημιουργούμενων στιγμιότυπων μιας συγκεκριμένης κλάσης;

sobes.tech AI

Απάντηση από AI

Για να περιορίσετε τον αριθμό των δημιουργούμενων αντικειμένων μιας κλάσης σε C++, μπορείτε να χρησιμοποιήσετε μια στατική μεταβλητή μετρητή μέσα στην κλάση, η οποία αυξάνεται κατά τη δημιουργία ενός αντικειμένου και μειώνεται κατά την καταστροφή του. Στον κατασκευαστή, ελέγχεται αν έχει ξεπεραστεί το όριο, και αν ναι, ρίχνεται μια εξαίρεση ή αποτρέπεται με άλλον τρόπο η δημιουργία νέου αντικειμένου.

Παράδειγμα:

#include <stdexcept>

class LimitedInstances {
    static int count;
    static const int max_instances = 5;
public:
    LimitedInstances() {
        if (count >= max_instances) {
            throw std::runtime_error("Το όριο των αντικειμένων έχει ξεπεραστεί");
        }
        ++count;
    }
    ~LimitedInstances() {
        --count;
    }
};

int LimitedInstances::count = 0;

Έτσι, όταν προσπαθείτε να δημιουργήσετε περισσότερα από 5 αντικείμενα, θα ριχτεί μια εξαίρεση.