Только нештатные c функции-члены вызываются для такого объекта:
object_arg.name_of_member_function(regular_args);
И, таким образом, нештатные c функции-члены имеют доступ к указателю this
, который указывает на object_arg
и неявно на члены объекта, на которые указывает this
.
Все остальные функции, которые состоят из функций-членов stati c и свободных функций, включая те, которые являются дружественными свободными функциями класса, такого как modify
, вызываются без аргумента объекта, подобного этому:
name_of_function(regular_args);
Как таковые, они не имеют указателя this
. Если вы хотите получить доступ к какому-либо объекту, вы должны передать его как обычный аргумент.
PS Изменение аргумента, переданного по значению, в большинстве случаев бесполезно.