Я понимаю , большинство перегрузки операторов, за исключением операторов доступа члена ->
, .*
, и ->*
т.д.
В частности, что передается этим операторным функциям, а что нужно возвращать?
Как операторная функция (например operator->(...)
) узнает, на какой член ссылается? Это может знать? Это вообще нужно знать?
Наконец, нужно ли учитывать какие-либо константы? Например, при перегрузке чего-то вроде operator[]
обычно вам потребуются как константная, так и неконстантная версия. Требуются ли для операторов доступа к членам константные и неконстантные версии?
const
и не const
версии operator->
не требуются , но предоставление обоих может быть полезным.
->*
и .*
. Фактически, он даже не упоминает о них! Я считаю, что они редко попадают в FAQ, но я с удовольствием добавлю ссылку на этот вопрос из FAQ. Пожалуйста, не закрывайте это как обман FAQ!