Tôi hiểu hầu hết các nhà khai thác quá tải, với ngoại lệ của các nhà khai thác truy cập thành viên ->
, .*
, ->*
, vv
Cụ thể, những gì được truyền cho các hàm toán tử này và những gì cần được trả về?
Làm thế nào để hàm toán tử (ví dụ operator->(...)
) biết thành viên nào đang được giới thiệu? Nó có thể biết không? Nó thậm chí cần phải biết?
Cuối cùng, có bất kỳ cân nhắc const cần phải được tính đến? Ví dụ, khi quá tải một cái gì đó như operator[]
, nói chung, bạn sẽ cần cả phiên bản const và không const. Các nhà khai thác truy cập thành viên yêu cầu các phiên bản const và không const?
const
và không phải là const
phiên bản operator->
không bắt buộc , nhưng cung cấp cả hai có thể hữu ích.
->*
và .*
. Trong thực tế, nó thậm chí không đề cập đến chúng! Tôi cảm thấy họ hiếm khi được tham gia Câu hỏi thường gặp, nhưng tôi sẵn sàng liên kết câu hỏi này từ Câu hỏi thường gặp. Vui lòng không đóng phần này dưới dạng bản sao của Câu hỏi thường gặp!