В общем, не согласен. Простой пример: объект Б, состояние которого зависит от другого объекта А.
Программист создает объект А, создает Б, передает Б ссылку на А...
Это не просто плохой, а очень плохой стиль кодирования... В нашем случае, это и есть источник падений сервера
Что касается LS и данной темы выделил жирным:
<!--QuoteBegin-"Бьерн Страуструп+ «Язык программирования С++»"-->
<span class="vbquote">("Бьерн Страуструп @ «Язык программирования С++»")</span><!--QuoteEBegin-->СВОД ПРАВИЛ
1. Когда вы пишите программу, то создаете конкретные представления тех понятий, которые использовались в решении поставленной задачи. Структура программы должна отражать эти понятия настолько явно, насколько это возможно.
a. Если вы считаете "нечто" отдельным понятием, то сделайте его классом.
b. Если вы считаете "нечто" существующим независимо, то сделайте его объектом некоторого класса.
c. Если два класса имеют нечто существенное, и оно является для них общим, то выразите эту общность с помощью базового класса.
d. Если класс является контейнером некоторых объектов, сделайте его шаблонным классом.
2. Если определяется класс, который не реализует математических объектов вроде матриц или комплексных чисел и не является типом низкого уровня наподобие связанного списка, то:
а. Не используйте глобальных данных.
b. Не используйте глобальных функций (не членов).
c. Не используйте общих данных-членов.
d. Не используйте функции friend (но только для того, чтобы
избежать а, b или c).
e. Не обращайтесь к данным-членам другого объекта непосредственно.
f. Не заводите в классе "поле типа"; используйте виртуальные функции.
g. Используйте функции-подстановки только как средство значительной оптимизации.[/quote]Единственное, без чего трудно обойтись - это 2-b, но если в них не используются объявленные не в самой функции самописные классы (а этого не должно быть!), это никак не влияет на падения сервера.
Частный же случай - объет А является полностью внутренним для Б, не имеет внешних связей, им же и создан - тогда удаление объектом Б объекта А оправданно вполне.
Частный и единственно правильный случай.
Добавлено:
где-то кто-то писал
что самое плохое в домино это самописные классы в которые есть массимы данных или массивы подклассов
так вот эти массимы нужно самому прибивать
Не знаю, кто писал, но я к этому сам пришёл и всегда чищу. Также чищу нотесовские объекты, содержащие другие объекты, например NotesDocumentCollection и т.п.
я еще до этой темы плотно не добрался, так как пытаюсь найти способ узнать "выгрузился ли агент по окончанию полностью"
Это вряд ли получится, разве только не написать специальную задачу нас сервере