Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PYaVU_otvyty.docx
Скачиваний:
2
Добавлен:
04.08.2019
Размер:
100.42 Кб
Скачать

Билет 9: КонстантныеобъектывязыкеСи.

Если создать представитель класса с модификатором const, то компилятор будет проинформирован, что содержимое объекта не должно изменяться после инициализации. Чтобы предотвратить изменение значений элементов константного объекта, компилятор генерирует сообщение об ошибке, если объект используется с неконстантной функцией-элементом.  Константная функция-элемент, объявляемая с ключевым словом const после списка параметров, должна удовлетворять следующим правилам: • она не может изменять значение элементов данных класса; • не может вызывать неконстантные функции-элементы класса; • может вызываться как для константных, так и неконстантных объ-ектов класса. Для того чтобы сделать функцию константной, необходимо указать ключевое слово const после прототипа функции, но до начала тела функции. Если объявление и определение функции разделены, то модификатор const необходимо указать дважды – как при объявлении, так и при ее определении. Те методы, которые только лишь считывают данные из поля класса, имеет смысл делать константными, поскольку у них нет необходимости изменять значения по-лей объектов класса.

Обычно константные объекты создают для того, чтобы получить гарантии того, что данные объекта невозможно будет изменить. Однако иногда случаются ситуации, когда вы хотите создать объект-константу, имеющий опреде-ленное поле, которое нужно будет изменять, несмотря на то, что сам объект является константой. Для этих целей необходимо соответствующее поле объявить со спецификатором mutable.

Билет 10: Константные объекты

Иногда нам приходится использовать константы в программе. Например, при вычислении длины окружности, используется число 3.14... Она представляет собой общеизвестную константу пи. Чтобы воспользоваться этой константой можно ввести её фактическое значение в формулу, однако есть серьёзные основания чтобы использовать вместо числа символьную константу. Другими словами, вы можете воспользоваться оператором pi и заставить компьютер подставлять фактическое значение позже.

В чём заключается преимущества использования константы? Во-первых, имя является более информативным, чем число. Если вы читаете длинную программу, то версия с использованием символьной константы воспринимается лучше.

Для объявления символических и строчных констант применяется оператор #define. С этой целью достаточно воспользоваться одиночными кавычками для первых и двойными кавычками для последних. Например:

#define name “alex” или #define ‘z’

Следует ещё раз подчеркнуть, что всё, что следует за символическим именем, замещает его. Не допускайте следующую распространённую ошибку:

# define TOES = 20

правильно: #define TOES 20

Стандарт С99 обеспечивает ещё один способ создания символических констант, который предусматривает использование ключевого слова const для преобразования объявленной переменной в объявление константы.

Const int MONTHS = 12;

Благодаря такому объявлению константа MONTHS становится значением только для чтения. Иначе говоря, вы можете вывести на экран значение MONTHS и задействовать его в вычислениях, но вы не можете изменять значение MONTHS. Этот новый подход более гибок, чем использование конструкции # define.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]