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 αντικείμενα, θα ριχτεί μια εξαίρεση.