Untitled

mail@pastecode.io avatar
unknown
c_cpp
5 months ago
1.2 kB
1
Indexable
#include <iostream>
#include <stdexcept>

class DoiTuongGioiHan {
private:
    static int so_luong_doi_tuong;
    static const int gioi_han_doi_tuong = 3;

    DoiTuongGioiHan() {
        so_luong_doi_tuong++;
    }

public:
    ~DoiTuongGioiHan() {
        so_luong_doi_tuong--;
    }

    static DoiTuongGioiHan* taoDoiTuong() {
        if (so_luong_doi_tuong >= gioi_han_doi_tuong) {
            throw std::runtime_error("Không thể tạo nhiều hơn 3 đối tượng của lớp DoiTuongGioiHan");
        }
        return new DoiTuongGioiHan();
    }

    static int laySoLuongDoiTuong() {
        return so_luong_doi_tuong;
    }
};

int DoiTuongGioiHan::so_luong_doi_tuong = 0;

int main() {
    try {
        DoiTuongGioiHan* doi_tuong_1 = DoiTuongGioiHan::taoDoiTuong();
        DoiTuongGioiHan* doi_tuong_2 = DoiTuongGioiHan::taoDoiTuong();
        DoiTuongGioiHan* doi_tuong_3 = DoiTuongGioiHan::taoDoiTuong();

        DoiTuongGioiHan* doi_tuong_4 = DoiTuongGioiHan::taoDoiTuong();

    } catch (const std::exception& e) {
        std::cerr << e.what() << std::endl;
    }

    return 0;
}
Leave a Comment