169 похожих чатов

Что-То я совсем запутался со вложенными классами, вот начал писать procedure

TCompartmentSpace.DeleteCargo(Index: Dword);
begin
if (Index < Dword(Length(Cargos))) then
begin
FreeAndNil(Cargos[Index]); // Free the cargo object and set its reference to nil
Delete(Cargos, Index, 1); // Removes 1 cargo element at position Index
end;
end;
Будет ли правильно это работать?
А если уровень вложенности большой, что нужно вызывать? Деструктор на каждый элемент, функцию Delete? Как это все чистить правильно?

7 ответов

15 просмотров

зачем тут dword? integer обычно удобнее

Кокошник-наголо Автор вопроса
Handatros
зачем тут dword? integer обычно удобнее

тут дело не в этом, меня интересует каскадное удаление элементов вложенных классов

Кокошник наголо
тут дело не в этом, меня интересует каскадное удал...

Определи логическую структуру, кто за что отвечает и владеет. И оно само нарисуется

Кокошник-наголо Автор вопроса
Konstantin
Определи логическую структуру, кто за что отвечает...

а вот не рисуется, удаляем элемент с более высоким уровнем, и он должен каскадно удалять ветку с динамическими массивами экземпляров подклассов, но как? Поэлементно вызывать по всему вложенному дереву деструкторы? Удалять элементы из массивов, аони автоматом вызывают соответствующий деструктор?

вроде всё чётко а удалять Delet'ом обязательно? Может потом освободить всё сразу?

Кокошник наголо
а вот не рисуется, удаляем элемент с более высоким...

массив отдельно, объекты отдельно только если это не объекты с интерфейсом(да ведь?)

Кокошник-наголо Автор вопроса
notme
вроде всё чётко а удалять Delet'ом обязательно? Мо...

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

Похожие вопросы

Обсуждают сегодня

Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
10
здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number — неподписанный шорт, line — массив чаров. ругань следующая: main.c:29:30: error...
Roberto's Ширгозиев
13
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Добрый день! Подскажите, пожалуйста: какими компетенциями нужно обладать, чтобы претендовать на работу эрланг (отдельная благодарность, если про элексир тоже подскажете) разр...
via ☸️ led
20
Всем привет. Ребят подскажите пожалуйста. Вопрос по дизасемблировани. Начну с начала. У меня есть скомпилированная программа на ГО (я разработчик) - в ней есть защита лицензии...
Zloy
11
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Можно попросить небольшое ревью кода? Тут немнога, я ничего интереснее не придумал, чем написать аналог tree в качестве практики с cmake. https://github.com/hrimov/tree-unix/...
Andrew Hrimov
11
Карта сайта