Sergey K
Я понимаю что это условности и как на низком уровне все происходит.
Но я еще не понял как и главное почему это происходит на высоком уровне.
Есть ли годное чтиво по моему вопросу?
Переменные не примитивных типов, в данном случае объект класса рассматривается как указатель на область памяти что содержит данные об этом объекте. Следовательно вы можете хранить в одном объекте ссылки на другие объекты такого же типа или другого, передавать эти ссылки через функции и непосредственно работать конкретно с объектом в любом месте куда вы "закинули" указатель на него