Правила программирования на Си и Си++

   проект дома kdr 6 до𚞧, n. |     

Локальные перегрузки операторов new и delete опасны


Здесь основной проблемой является то, что операторы new и delete, определенные в виде членов класса, следуют другим правилам, чем перегруженные на глобальном уровне. Локальная перегрузка используется лишь тогда, когда вы размещаете единственный объект. Глобальная перегрузка используется вами всегда при размещении массива. Следовательно, этот код,

скорее всего, не будет работать:

some_class *p = new some_class[1];  // вызывает глобальный

                                    // оператор new()

//...

delete p;          // вызывает some_class::operator delete()

Помните, что эти две строки могут быть в различных файлах.

Часть 8з. Шаблоны

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



Содержание раздела