спецификаций исключений в глав
Автор admin Среда, 6 мая 2009 11:32
спецификаций исключений в главе 1). 2 Данный раздел основан на статье Чака Эллисона «The Simplest Automated Unit Test Framework That Could Possibly Work* в журнале «C/C++ Users Journal*, сентябрь 2000 г. Но если речь идет о функции, которую вызываете только вы и никто другой (например, закрытая функция в спроектированном вами классе), макрос assert() оказывается более уместным. Вы в полной мере контролируете ситуацию и, несомненно, хотите отладить свою программу перед распространением окончательной версии. Нарушение постусловий свидетельствует об ошибке в программе. Утверждения уместно использовать для любых инвариантов в любой момент, включая проверку постусловия в конце функции. В частности, это относится к функциям классов, поддерживающим состояние объекта. Например, в приведенном выше примере класса MyVector разумный инвариант для всех открытых функций класса мог бы выглядеть так: assert(0 <= nextSlot && nextSlot <= capacity): А если nextSlot является беззнаковым целым, можно так: assert(nextSlot <= capacity); Такой инвариант называется инвариантом класса, а его соблюдение вполне может обеспечиватьс
Комментарии закрыты.
Последние комментарии