Tôi có một lớp C++ quá tải operator[]
, toán tử mảng/dấu ngoặc đơn mảng. Điều này là vô cùng thuận tiện bên ngoài lớp học của tôi, nơi tôi có thể viết foo[bar
]. Tuy nhiên, tôi không thể tìm ra cách sử dụng ký hiệu này khi tôi đang triển khai phương thức bên trong lớp học của tôi.C++: Cách thuận tiện để truy cập toán tử [] từ bên trong lớp?
Tôi biết tôi có thể viết operator[](bar)
hoặc this->operator[](bar)
nhưng những điều này khá khó sử dụng và lấy đi rất nhiều tiện ích của nhà điều hành ngay từ đầu. (Tôi cũng biết tôi chỉ có thể thêm một phương thức mới gọi cho nhà điều hành.) Có cách nào tôi có thể viết this[bar]
hoặc this->[bar]
hoặc một cái gì đó tương tự hay không?
Note: Câu hỏi này cũng có thể áp dụng cho nhiều nhà khai thác unary, nhưng cá nhân tôi chỉ quan tâm đến operator[]
(ví dụ, làm thế nào tôi có thể gọi foo++
từ bên trong lớp học?).
Chỉnh sửa: Tôi nhận ra ngay sau khi đăng bài mà tôi có thể sử dụng (*this)[bar]
. Tất cả các câu trả lời cho đến nay cũng đã đề xuất điều này. Còn lựa chọn nào nữa ko?
Đã thêm một cú pháp đường cú pháp mà bạn có thể thích (nhưng nó không phải là giải pháp chuẩn) –