Проблема с этим кодом в том, что trunk.left()
возвращает копию ветви, а не ссылку на ветку. Следовательно, ваш указатель focus3
указывает на временный объект, который будет немедленно очищен после завершения выполнения этой строки кода. Следовательно, когда вы пытаетесь разыменовать focus3
в последней строке, вы следуете указателю на данные мусора, что приводит к сбою.
Чтобы это исправить, либо left
верните ссылку на ветвь, либо сделайте focus3
константную ссылку, которая продлевает время жизни временного объекта до времени жизни ссылки.