значит, следующая строка вызы

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

значит, следующая строка вызывает функцию draw() для указателя Shape*, на который в данный момент ссылается итератор: (*i)->draw(): Круглые скобки в левой части выглядят некрасиво, но они нужны для получения желаемого приоритета операторов. При уничтожении и в других ситуациях, связанных с исключением указателей из контейнера, контейнеры STL не вызывают оператор delete для содержащихся в них указателей. Допустим, вы создали объект в куче оператором new и сохранили указатель на него в контейнере. Контейнер не знает, хранится этот указатель в другом контейнере или нет; он не знает даже того, относится или нет этот указатель к памяти в куче. Как всегда, программист несет всю ответственность за освобождение памяти, выделенной из кучи. В последних строках программы происходит зачистка: мы перебираем все указатели в контейнере и вызываем для каждого из них оператор delete. Учтите, что указатель auto_ptr не может использоваться для этой цели, поэтому подходящие умные указатели придется искать за пределами стандартной библиотеки С++2. Первое знакомство 337 Вы можете изменить тип контейнера, используемого прог


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