Цитата Oleg_SK:
Если не углубляться в реализацию классов, то может создаться впечатление что у каждого объекта класса имеется своя копия набора методов этого класса. »
|
Цитата Oleg_SK:
В списке есть множество узлов и соответственно множество идентичных по коду методов. Таким образом создается впечатление, что лично себя метод Insert не вызывает, а вызывает свою копию в следующем узле списка, которая в свою очередь может вызвать очередную свою копию в следующем узле списка и т.д. »
|
Обычный "метод класса" - это обычная функция, которая содержит неявный параметр
this (указатель на самого себя). Данный указатель используется для обращения к полям объекта и подставляется в вызовы других методов этого же объекта. А "статичный метод" (static) - это функция
без параметра
this. Как следствие, из неё можно обращаться только к статичным полям (которые
общие для всех объектов данного класса) и вызывать другие статичные методы.
Как следствие, в рассматриваемой ситуации имеем N вложенных (рекурсивных) вызовов функции
с разными значениями параметра this