Trong thiết kế của tôi, tôi có một lớp mà chủ yếu là một mặt trước cho một std::vector<OtherClass>
. Tôi có nên, trong giao diện lớp học của tôi, bàn giao cho bất kỳ người gọi nào std::iterator
, giao một tham chiếu đến toàn bộ vector
hoặc cung cấp một tập hợp các chức năng để truy cập nội dung của vector
của tôi? Hoặc tiếp cận hoàn toàn khác biệt?Lớp học của tôi chủ yếu là mặt tiền cho một thùng chứa, tôi có nên để lộ sự kiện này không?
Thông tin khác: Các phần tử trong vùng chứa sẽ được thiết lập trong khi khởi tạo và sẽ không được thêm vào khi chương trình đang chạy bình thường. Các khách hàng của lớp của tôi thường sẽ thực hiện các truy vấn và sửa đổi trạng thái của các phần tử OtherClass
, mặc dù không theo thời gian quan trọng.
Cân nhắc sử dụng các hàm miễn phí chấp nhận 'std :: vector' thay vì các thành viên của lớp trình bao bọc. – erenon
Đây là ứng dụng rất cụ thể. Iterator có thể hoạt động, nhưng nếu bạn liên tục thêm vào vector thì sao? Các bộ lặp sẽ bị vô hiệu khi vector phân bổ lại. Hãy cung cấp thêm thông tin cho chúng tôi! – Conduit
Nếu 'OtherClass' là hằng số, tại sao không chuyên? – Nelfeal