У вас есть оператор, которого вы не видите очень часто.
->*
- это единственный оператор. Он представляет собой указатель на основе .*
и является оператором доступа к члену.
Используется, если у вас есть объект для использования элемента (например, функция), но не знаю конкретного элемента (он хранится в переменной).
разобьем его:
this // object to work on
->* // member access operator
(*c) // dereference pointer pointing to member function (c is a pointer-to-pointer)
(¶m) // call member function stored in c on this passing ¶m to the function
Смотрите также: http://en.cppreference.com/w/cpp/language/operator_member_access
Edit: Это сообщение также содержит хорошее объяснений о том, что происходит здесь: https://stackoverflow.com/a/6586248/1314789
Если у кого-то есть идеи по редактированию названия, чтобы люди с тем же вопросом, что и я, могли бы легко найти этот вопрос, отредактируйте его. – turbulencetoo
'-> *' - один оператор. '*' - это другое. Это всего лишь последовательность составных подвыражений. –
Возможно, стрела отбрасывает меня; что бы выглядел этот код, если он состоял только из '.' и' * '? Is '((* this). * (* C))' действительный код? – turbulencetoo