KraGenDeveloper, во-первых, люди что-то изучают сначала, а потом делают. Тем более, когда это что-то - то, что уже делали множество раз другие люди. Они изучают инструменты, то как делали и что получили. И потом пытаются повторить, либо использовать уже готовое.
Если ты будешь строить свой дом впервые, что ты будешь делать? Пойдешь месить глину? Или узнаешь как дома строят? Или купишь дом? А если ты просто возьмешь чьи-то готовые кирпичи и не зная как, методом тыка будешь строить себе дом, то толку от этого будет очень и очень мало.
А во-вторых, я человеку объяснил. (не здесь)
KraGenDeveloper, ну потому что у вас плохо с логикой.
Ты приходишь в больницу и говоришь, что у тебя болит в боку, говоришь, что наклеил пластырь, но это не помогло. А там дыра размером с футбольный мяч.
И тут врачи: "рукалицо". И говорят, чтоб не лез туда, где не знаешь что делаешь. Не знаешь как лечить - иди и обратись к тому, что дыру залатает.
Vadim Rublev, chkdsk - это утилита не только для проверки, но и для исправления файловой системы. Это первое. Второе - диск может быть на последнем издыхании и винда будет с ним работать до последнего.
И вероятнее всего, портит файл не блокнот, а именно повреждения на диске из-за которых файл после записи не читаемый, а ОС работает из рук вон плохо, медленно и долго загружается. Это одна из самых популярных проблем. Именно устаревание диска или его частичный выход из строя по разным причинам приводят к тормозам ОС (а не "винда замусорена")
Alexandroppolus, иммутабельность и сама концепция ООП - можно сказать противоречащие вещи. Да, можно натянуть сову на глобус, но это не будет означать, что страна США выглядит как анус этой самой совы.
Объекты генерируют события, меняют своё состояние в зависимости от действий над ними, изменяют свои свойства. Вы только представьте. У вас есть класс окна. И вы хотите изменить заголовок окна. Что для этого нужно будет сделать? Ужас же
мне почему-то казалось, что механизм модулей придумали чтоб разделять части кода, а не объединять их...
Классы одного назначения логично держать в одном модуле и как раз это решит вашу проблему. Модули предназначены для разделения кода на части, а не разделения на классы (как это, например, принято в Шарпе).
TParent и TChild должны быть в одном модуле. Это позволит иметь ссылки друг на друга, объединить логически классы и достаточно будет подключить один модуль, чтобы использовать эти классы, а не каждый раз два модуля.