ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 5) онлайн
Исключение ненужных переменных
Программа CONVERT содержит несколько переменных, употребление которых обу- словлено исключительно соображениями наглядности и простоты кода. Следу- ющая программа, CONVERT2, являющаяся модификацией программы CONVERT, демонстрирует, каким образом можно использовать в выражениях функции вместо переменных:
// convert2.cpp
// более компактная версия программы convert #include <iostream> using namespace std;
float lbstokg(float); // прототип функции
int main() {
float lbs;
cout << "\nВведите вес в фунтах: "; cin >> lbs;
cout << "Вес в килограммах равен " << lbstokg(lbs) << endl; return 0;
}
//--------------------------------------------------------
// функция lbstokg()
// переводит фунты в килограммы
float lbstokg(float pounds)
{
return 0.453592 * pounds;
}
В теле функции main() теперь отсутствует переменная kgs. Вместо этого вы- зов функции lbstokg(lbs) помещен внутрь оператора cout:
cout << "Вес в килограммах равен " << lbstokg(lbs) << endl;
В теле функции lbstokg() больше не используется переменная kilograms, а вы- ражение 0.453592 * pounds помещено непосредственно в оператор return:
return 0.453592 * pounds;
Как только вычисление произведено, его результат возвращается программе так же, как это было сделано с использованием временной переменной.
Из соображений удобочитаемости программисты часто ставят скобки, окру- жающие входящее в состав оператора return выражение:
return (0.453592 * pounds);
Даже в том случае, когда компилятор не требует наличия скобок в выраже- нии, они не влияют на процесс вычисления, но в то же время облегчают чтение листинга другими программистами.
Опытные программисты предпочтут более длинный код программы CONVERT «экономичному» коду программы CONVERT2, поскольку последний менее поня- тен, особенно для людей, неискушенных в программировании. Решение вопро- са выбора между краткостью и простотой программного кода лежит на вас,
поскольку только вы можете предполагать, для какой аудитории будет предна- значен тот или иной листинг.
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
