Ошибка компилятора C2818
применение перегруженного оператора ->рекурсивно через тип "type"
Переопределение оператора доступа к члену класса содержит рекурсивную return
инструкцию. Чтобы переопределить ->
оператор с рекурсией, необходимо переместить рекурсивную подпрограмму в отдельную функцию, вызванную функцией переопределения оператора.