роверки в программе «угадай чи
Автор admin Среда, 6 мая 2009 11:32
роверки в программе «угадай число» зависит от пользовательского ввода, поэтому предотвратить его нарушение невозможно. Однако чаще инварианты зависят только от кода, написанного вами, и при правильной реализации исходной архитектуры всегда остаются истинными. В таких случаях лучше воспользоваться положительным утверждением, в котором отражено решение, принятое в процессе проектирования. Допустим, вы реализуете целочисленный вектор — массив, размеры которого изменяются по мере необходимости. Функция добавления элемента в вектор должна сначала убедиться в том, что в базовом массиве имеется свободная позиция; в противном случае она должна запросить дополнительную память в куче и скопировать в нее существующие элементы (а также удалить старый массив). Такая функция выглядит примерно так: void MyVector::push_back(int х) { if (nextSlot = capacity) grow(); assert(nextSlot < capacity): data[nextSlot++] = x: } 66 Глава 2 • Защитное программирование В приведенном примере data — динамический массив с элементами типа int и емкостью capacity, в котором используется nextSlot элементов. Функция grow() должна расшири
Комментарии закрыты.
Последние комментарии