Если вы посмотрите на таблицу приоритетов , вы увидите, что сначала выполняется оператор .
, а затем оператор *
(разыменование).
*
принимает указатель в качестве аргумента. Если вы напишите original.*headNode
, это бессмысленно. Каким-то образом вы говорите, чтобы получить член *headNode
из original
, но *headNode
не является членом original
. Вы также указываете ему оценить *headNode
, что на самом деле *this->headNode
(обратите внимание, что ->
вычисляется первым).
Вам нужно сначала получить указатель, написав original.headNode
, а затем разыменовать его с помощью *
. Поэтому
*original.headNode