Форум программистов, компьютерный форум, киберфорум
Наши страницы

Указатели на функции (Прата) - не пойму, как это работает - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как ограничить поле ввода только одним символом? А двумя? http://www.cyberforum.ru/cpp-beginners/thread1228219.html
Как ограничить поле ввода только одним символом? А двумя? Например чтобы сразу после нажатия клавиши(двух), программа переходила к следующей операции, не ожидая нажатия "ентер", либо же не давала...
C++ Невозможно запустить программу. Отсутствует libiconv-2.dll Запуск программы невозможен так как на компьютере отсутствует libiconv-2.dll.попробуйте переустановить программу Добавлено через 36 секунд Что нужно сделать? http://www.cyberforum.ru/cpp-beginners/thread1228210.html
C++ Неверная обработка данных при вводе двух и более величин
У меня по коду все правильно, при вводе одного значения n вывод верный. Если ввод включает 2 и больше значений n, то первое значение, остальные такое чувство, что не проверяет программа. Вот код:...
C++ Зависание потоков. Работа с файлами
Всем еще раз привет. Очень прошу помощи. Пишу на С++ под винду, с учетом специфики проекта выбор остановился на boost library. Пишу многопоточное приложение следующего вида: создается...
C++ Анализатор входящих сообщений сторонних ПО и сервисов http://www.cyberforum.ru/cpp-beginners/thread1228154.html
В WinAPI не силен, однако необходимо написать программу на С++, анализирующую входящие сообщения какого-нибудь сервиса обмена сообщениями, например вконтакте. По самому анализатору наброски есть,...
C++ Возожно ли создать массив указателей на шаблоны функций? Можно ли создать массив указателей на шаблоны функций, если да, то как? Пробовал вот так template <class my_type> void my_func( my_type* input_arr) потом пытался запихнуть my_type* как аргумент... подробнее

Показать сообщение отдельно
gru74ik
Модератор
Эксперт CЭксперт С++
4196 / 1844 / 198
Регистрация: 20.02.2013
Сообщений: 4,991
Записей в блоге: 22
16.07.2014, 18:46  [ТС]
Всё, дошло.
В 18-й строке компилятору дали понять, что вместо int lines надо подставить int code.
А в реализации estimate() в 40-й строке кода становится понятно, что переменная lines - это та же lns.
Что-то типа псевдоним псевдонима. Только нафига было огород городить? Почему было не написать так:
C++
1
2
3
4
5
6
7
8
9
double betsy(int lines)
{
    return 0.05 * lines;
}
 
double pam(int lines)
{
    return 0.03 * lines + 0.0004 * lines * lines;
}
?

Добавлено через 27 минут
Цитата Сообщение от jurok_85 Посмотреть сообщение
первый аргумент функции, получается lines равно code
А из первого сообщения топика разве было не понятно, что это я и сам понял?

Вопрос же чётко был поставлен:
Цитата Сообщение от gru74ik Посмотреть сообщение
Но я хоть убей не могу понять, каким волшебным образом компилятор понимает,
что переменная int lns - это та же самая int code. Откуда он берёт это знание?
Теперь вопрос в следующем:
Цитата Сообщение от gru74ik Посмотреть сообщение
нафига было огород городить?
Зачем Прата наплодил сущностей в этом примере?

Добавлено через 19 минут
Цитата Сообщение от gru74ik Посмотреть сообщение
Зачем Прата наплодил сущностей в этом примере?
Перечитал главу ещё раз. Дошло почему. Предполагается, что estimate() писал один
программист, а pam() и betsy() другой (или другие). Поэтому и в estimate() переменную
обозвали lines, а в pam() и betsy() - lns:
Цитата Сообщение от Стивен Прата
Проясним этот процесс на примере. Предположим, что требуется спроектировать
функцию estimate (), которая оценивает затраты времени, необходимого для
написания заданного количества строк кода, и вы хотите, чтобы этой функцией
пользовались разные программисты. Часть кода estimate () будет одинакова для
всех пользователей, но эта функция позволит каждому программисту применить
собственный алгоритм оценки затрат времени.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru