Программирование. Принципы и практика использования C++ Исправленное издание
Шрифт:
A.5.7. Операторы приведения
Существуют четыре оператора приведения к типу.
Динамическое приведение обычно используется для навигации по иерархии классов, если указатель
Статическое приведение используется для “разумных преобразований,” т.е. если операнд v может быть результатом неявного преобразования типа
Оператор
Приведения в стиле языка С и функциональные приведения могут выполнить любое преобразование типа, которое можно осуществить с помощью оператора
Приведений лучше избегать. Во многих ситуациях их использование свидетельствует о плохом стиле программирования. Исключения из этого правила представлены в разделах 17.8 и 25.4.1. Приведение в стиле языка С и функциональные приведения имеют ужасное свойство: они позволяют вам не вникать в то, что именно они делают (см. раздел 27.3.4). Если вы не можете избежать явного преобразования типа, лучше используйте именованные приведения.
A.6. Инструкции
Грамматическое определение инструкций языка C++ приведено ниже (opt означает “необязательный”).
инструкция:
объявление
{ список_инструкции opt }
выражение opt;
инструкция_выбора
инструкция_итерации
инструкция_с_метками
управляющая_инструкция
инструкция_выбора:
инструкция_итерации:
инструкция_с_метками:
управляющая_инструкция:
список_инструкции:
инструкция список_инструкции opt
условие:
выражение
спецификатор_типа объявляемый_объект = выражение
инструкция_инициализации_for:
выражение opt;
спецификатор_типа объявляемый_объект = выражение;
список_обработчиков:
список_обработчиков список_обработчиков opt
Обратите внимание на то, что объявление — это инструкция, а присваивание и вызов функции являются выражениями. К этому определению следует добавить следующий список.
• Итерация (
• Ветвление (
• Выражения; см. разделы A.5 и 4.3.
• Объявления; см. разделы A.6 и 8.2.
• Исключения (
Рассмотрим пример, созданный просто для того, чтобы продемонстрировать разнообразие инструкций (какую задачу они решают?).