05.09.2016 Views

Стефан Р. - С++ Для чайников

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

МомменйифциЖе свою nfwzficuuuf<br />

Я считаю, что можно избежать излишних ошибок, если комментировать программу<br />

в процессе ее написания, вместо того чтобы ждать, когда программа заработает,<br />

и только потом возвращаться и добавлять комментарии к тексту.<br />

Понятно, что никому не хочется тратить время на написание объемистых заголовков<br />

и пояснений к функциям, но я думаю, вы всегда найдете пару минут, чтобы добавить<br />

краткий комментарий к программе. Когда вы вернетесь к коду, написанному недели<br />

две назад, короткие и содержательные комментарии значительно облегчат<br />

"вживание" в программу.<br />

Кроме того, последовательно используемые отступы и соглашения об именах сделают<br />

код гораздо доступнее для чтения и понимания. Конечно, очень приятно, когда<br />

код легко читать по завершении написания программы, но просто необходимо, чтобы<br />

код хорошо воспринимался и при написании — именно тогда, когда вам действительно<br />

нужна помощь.<br />

cf&t oquH /газ выполншне<br />

п/гог/taMMtf пошагово<br />

Вам, как программисту, очень важно понимать, как работает ваша программа. Ничто<br />

не может дать облегчить понимание, чем пошаговое выполнение программы<br />

с помощью хорошего отладчика (обычно для этого вполне подходят отладчики, включенные<br />

в среды разработки компиляторов).<br />

Когда некоторая функция готова и может быть добавлена к программе, ее следует<br />

тщательно проверить хотя бы один раз, проходя все возможные варианты ветвления<br />

потока управления. Гораздо легче отлавливать ошибки в отдельной функции, чем<br />

в комплексе с другими функциями программы.<br />

ШЗегашие пе/гег/гузки опе/гаМо/ьов<br />

Настоятельно советую избегать перегрузки операторов, за исключением операторов<br />

ввода-вывода operator« () и operator>> () и оператора присвоения<br />

operatorH), пока вы как следует не освоитесь в C++. Хотя хороший набор перегруженных<br />

операторов и может значительно повысить полезность класса и читаемость<br />

кода, перегрузка почти никогда не бывает крайне необходимой и может значительно<br />

усложнить жизнь начинающего программиста.<br />

После того как вы интенсивно поработаете с C++ по меньшей мере несколько месяцев,<br />

можете начинать перегружать операторы как вам заблагорассудится.<br />

с кучей<br />

Основное правило, касающееся кучи, заключается в том, что выделение и освобождение<br />

памяти из кучи должно происходить на одном уровне. Если функциячлен<br />

MyClass: : create () выделяет блок памяти и возвращает его вызывавшему коду,<br />

то должна существовать и функция MyClass : : release (), которая освобождает<br />

блок памяти, возвращая его в кучу. MyClass :: create О не должна требовать от<br />

вызывающей функции самостоятельного освобождения памяти. Это, конечно, не<br />

320 Часть VI. Великолепная десятка

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!