1.4. Немного о комментариях

1.4. Немного о комментариях

Комментарии помогают человеку читать текст программы; писать их грамотно считается правилом хорошего тона. Комментарии могут характеризовать используемый алгоритм, пояснять назначение тех или иных переменных, разъяснять непонятные места. При компиляции комментарии выкидываются из текста программы поэтому размер получающегося исполняемого модуля не увеличивается.

В С++ есть два типа комментариев. Один – такой же, как и в С, использующий символы /* для обозначения начала и */ для обозначения конца комментария. Между этими парами символов может находиться любой текст, занимающий одну или несколько строк: вся последовательность между /* и */ считается комментарием. Например:

/*

* Это первое знакомство с определением класса в C++.

* Классы используются как в объектном, так и в

* объектно-ориентированном программировании. Реализация

* класса Screen представлена в главе 13.

*/

class Screen {

/* Это называется телом класса */

public:

void home(); /* переместить курсор в позицию 0,0 */

void refresh ();/* перерисовать экран */

private:

/* Классы поддерживают "сокрытие информации" */

/* Сокрытие информации ограничивает доступ из */

/* программы к внутреннему представлению класса */

/* (его данным). Для этого используется метка */

/* "private:" */

int height, width;

}

Слишком большое число комментариев, перемежающихся с кодом программы, может ухудшить читаемость текста. Например, объявления переменных width и height в данном тексте окружены комментариями и почти не заметны. Рекомендуется писать развернутое объяснение перед блоком текста. Как и любая программная документация, комментарии должны обновляться в процессе модификации кода. Увы, нередко случается, что они относятся к устаревшей версии.

Комментарии в стиле С не могут быть вложенными. Попробуйте откомпилировать нижеследующую программу в своей системе. Большинство компиляторов посчитают ее ошибочной:

#include iostream

/* комментарии /* */ не могут быть вложенными.

* Строку "не вкладываются" компилятор рассматривает,

* как часть программы. Это же относится к данной и следующей строкам

*/

int main() {

cout "Здравствуй, мир ";

}

Один из способов решить проблему вложенных комментариев – поставить пробел между звездочкой и косой чертой:

/* * /

Последовательность символов */ считается концом комментария только в том случае, если между ними нет пробела.

Второй тип комментариев – однострочный. Он начинается последовательностью символов // и ограничен концом строки. Часть строки вправо от двух косых черт игнорируется компилятором. Вот пример нашего класса Screen с использованием двух строчных комментариев:

/*

* Первое знакомство с определением класса в C++.

* Классы используются как в объектном, так и в

* объектно-ориентированном программировании. Реализация

* класса Screen представлена в главе 13.

*/

class Screen {

// Это называется телом класса

public:

void home(); // переместить курсор в позицию 0,0

void refresh (); // перерисовать экран

private:

/* Классы поддерживают "сокрытие информации". */

/* Сокрытие информации ограничивает доступ из */

/* программы к внутреннему представлению класса */

/* (его данным). Для этого используется метка */

/* "private:" */

int height, width;

}

Обычно в программе употребляют сразу оба типа комментариев. Строчные комментарии удобны для кратких пояснений – в одну или полстроки, а комментарии, ограниченные /* и */, лучше подходят для развернутых многострочных пояснений.