1: Тема: Константы Правила использования констант Константы и аргументы функций Постоянные методы Операция индексации Оптимизация класса String
2: Константы Объявляются с ключевым словом const. Должны инициализироваться Значение константы не может быть изменено Ключевое слово const значимо при перегрузке Могут передаваться функциям только для формальных аргументов, передаваемых по значению для формальных аргументов, объявленных как ссылки или указатели на константу Постоянные объекты могут вызывать только постоянные методы.
3: Ссылки на константы
4: Указатели на константы
5: Константы и вызов по значению
6: Постоянные методы
7: Вызов постоянных методов
8: Операция индексации operator Доступ к элементу по его номеру используется для многих типов данных Для операции индексации надо обеспечить синтаксис (на примере типа String) String firstname ; firstname bilbo ; char ch ; ch firstname0 ; firstname0 B; const String name firstname ; ch name0 ; и запретить синтаксис name0 B; Должна быть методом
9: Оптимизация класса String
10: Обновление методов
11: Новые методы operator
12: Использование String
13: РЕЗЮМЕ В С можно тонко регулировать права доступа к данным с помощью описателя const Описатель const лишает объект свойства быть lvalue При вызове функции константа может быть в аргументе, если передача аргумента происходит по значению:void func( type ); по ссылке на константу: void func( const type& ); по указателю на константу: void func( const type ); Для постоянного объекта можно вызывать только постоянные методы класса Использование const расширяет область применимости функции
14: Упражнение Оптимизируйте методы в классе String, используя ссылки и константы Измените методы для операций и ! так, чтобы они могли использоваться с постоянными объектами типа String. Протестируйте следующий синтаксис: