Tôi đang viết một lớp sưu tập. Tôi muốn quá tải toán tử dấu ngoặc vuông ([]) để cung cấp quyền truy cập vào các phần tử trong bộ sưu tập.Quá tải Toán tử dấu ngoặc vuông để chấp nhận giá trị
int operator[](int i)
{
// Do stuff here
}
Vấn đề của tôi là tôi không thấy làm thế nào để viết những dòng này để tôi có thể sử dụng toán tử này để chấp nhận một giá trị:
myClassInstance[0] = value;
tôi thấy không có cách nào để khai báo các nhà điều hành dấu ngoặc vuông với một đối số bổ sung (giá trị để gán cho phần tử).
Tôi biết tôi chỉ đơn giản có thể trả về int & và người gọi có thể gán giá trị cho điều đó, nhưng nội bộ mỗi phần tử được lưu trữ ở định dạng khác với định dạng được công khai.
Điều này có thể thực hiện được không?
bạn cần hai operator [] (int) phiên bản. một phiên bản const và phiên bản không phải là const mà bạn đã yêu cầu. Phiên bản gốc nên có const phía sau nó, để gọi trên một đối tượng const; –
@Edwin: Tôi đã thấy nhận xét khác của bạn. Tôi sẽ cho nó đi. Cảm ơn. –