суббота, 13 февраля 2021 г.

Похоже, что нужно переписать часть консоли

 Понял, что бесконечность - это не фича, а баг. Устранил это недоразумение - теперь всё работает чётко.

Разобрался с тем, как именно должны работать ссылки на массивы. Теперь они тоже работают как надо.

Но пришёл к выводу, что в функции start класса Console снова намешалась жуткая мешанина. Всё потому, что разные типы параметров я присваиваю одним и тем же переменным, а это нужно делать, если делать так, создавая классы с виртуальным предком.

Вся проблема в том, что после выполнения очередной команды эти временные объекты нужно удалить, если они создавались, а у меня они в некоторых случаях создаются, в других случаях берутся указатели на значения в стеке - в общем, сижу теперь и гадаю, каким местом я думал, когда писал этот код.

Ошибка при попытке удалить значение, взятое по ссылке на стек

Видимо, всё дело в спешке. Вроде я совсем не спешу, но мозг всё равно перестаёт видеть картину происходящего. Начинается программирование особых случаев. Которое в итоге приводит к мешанине.

С одной стороны так программировать проще. Меньше задумываешься, больше пишешь код. С другой стороны потом всегда приходится переписывать получившуюся мешанину.

Ну, что ж, переписывать так переписывать. Уже то хорошо, что не придётся переписывать вообще всё.

От версии к версии код программы всё больше становится реюзабельным. Но до совершенства ему конечно ещё пока далеко.

Комментариев нет: