поэтому для них оператор dele

Автор admin Пятница, 5 июня 2009 11:32

поэтому для них оператор delete приходится вызывать специально. Так мы приходим к тому, что на первый взгляд кажется просчетом разработчиков STL: ни в одном контейнере STL не предусмотрена возможность автоматического вызова оператора delete для содержащихся в контейнере указателей, поэтому оператор delete приходится вызывать вручную. Неужели разработчики решили, что контейнеры указателей не представляют интереса для программиста? Конечно, нет. Автоматический вызов оператора delete для указателя создает проблемы из-за возможности множественной принадлежности элементов. Если контейнер содержит указатель на объект, вполне возможно, что этот указатель также хранится в другом контейнере. Указатель на объект Aluminium, хранящийся в списке указателей на Trash, также может храниться в списке указателей на Aluminium. Какой из двух списков в этом случае должен отвечать за уничтожение объекта, или, другими словами, какому из списков «принадлежит» этот объект? Проблема полностью исчезает, если вместо указателей в списке хранятся объекты. В этом случае вполне очевидно, что при уничтожении списка также должны уничто


Комментарии закрыты.