Правила программирования на С и С++. Главы 7-8 - Используйте константы
ОГЛАВЛЕНИЕ
Страница 28 из 74
113. Используйте константы.
В программы на С класс памяти const часто не включается. На самом деле это просто небрежность, но она мало влияет на возможности в С. Так как С++ гораздо разборчивее в отношении типов, чем С, то в С++ это гораздо более крупная проблема. Вы должны использовать модификатор cost везде, где можно; это делает код более надежным, и часто компилятор не принимает код, который его не использует. Особенно важно:
- Всегда передавать указатели на константные объекты, если вы не модифицируете эти объекты. Объявление:
- Все сообщения, не меняющие внутреннее состояние объекта, объявлять с модификатором const подобным образом:
{
public: int operator==( const cls ?p ) const ;};(Это тот модификатор const справа, относительно которого я тут распинаюсь). Этот const говорит компилятору, что передача сообщения объекту, объявленному константным, безопасна. Заметьте, что этот самый правый модификатор const в действительности создает следующее определение для указателя this: const current_class *this;Если код в этой константной функции попытается модифицировать любое поле данных класса или предпримет вызов другой функции-члена, не помеченной const, то вы получите сообщение об ошибке компиляции такого примерно содержания "не могу преобразовать указатель на const текущий_класс в указатель на текущий_класс". Упомянутым указателем в данном случае является this, и никогда не будет дозволено преобразование указателя на константу в указатель на переменную (потому что вы тогда могли бы модифицировать константу при помощи указателя).Константные ссылки тоже важны и рассматриваются позже.