Обратите внимание на последний оператор — в нем результат деления выводится в крайнем левом поле Dollars.
Подобный подход к подготовке исходных текстов, когда похожие частг кода копируются и переносятся в новое место, таит в себе потенциальный источник ошибок. Если переносимый блок большой, легко можно забыть исправить какой-то оператор, что может привести к трудно выявляемым ошибкам. Например, если забыть в скопированном операторе
Result = DoLlarsNum * RateValue;
заменить DollarsNum на RoublesNum или знак умножения * на знак деления /, то никаких ошибок компилятор не найдет, поскольку текст с егс точки зрения написан корректно, однако программа будет работать совершенно неправильно, и, возможно, потребуется немало времени, чтобь понять, где же таится ошибка.
Локальные переменные и область действия
А можно ли повторно определять переменную Result? Ведь она уже былс описана, когда мы программировали реакцию на нажатие кнопки Total Button а выше неоднократно говорилось, что использовать одинаковые название для переменных недопустимо.
Дело в том, что переменные в языке Си++ имеют свои области действия которые определяют, где та или иная переменная используется. Применена одинаковых названий для переменных не разрешается только если пере менные с одинаковыми названиями попадают в одну и ту же область действия.
Формально переменная начинает свое существование с того места, где он;
была описана, а фактически — с начала логического блока, в котором ош расположена. Этот блок, как уже отмечалось, задается фигурными скобкам» { ... } и определяет область действия всех переменных, описанных внутри такого блока. Подобные переменные называются локальными. Они пере стают существовать (исчезают, теряются) за закрывающей фигурной скоб кой своего блока.
А так как переменную Result во второй раз мы определили внутри другой блока, то никакой ошибки не возникает.
64