|
Модератор
|
||||||
Указатели на функции (Прата) - не пойму, как это работает16.07.2014, 17:42. Показов 3250. Ответов 28
Метки нет (Все метки)
Стивен Прата "Язык программирования C++. Лекции и упражнения"
7 глава, стр. 355, листинг 7.18. fun_ptr.cpp
аргументов, опустив имена; либо написать те самые имена, которые будут в реализации функции; либо вовсе написать любые удобные имена, которые будут служить своеобразной подсказкой - это не важно, компилятор всё равно эти имена пропустит. В прототипах функций betsy() и pam() указаны только типы аргументов, это я понял. В прототипе функции estimate() указаны имена-подсказки lines и pf соответственно. Несмотря на то, что нигде потом не будет объявлена переменная int lines и указатель pf, компилятор понимает, что первым аргументом функции estimate() должно быть целое число, либо целочисленная переменная (в нашем случае - переменная int code), а вторым аргументом указатель на функцию (в нашем случае это betsy и pam, соответственно). Понимает почему? Потому что при вызове функции estimate() на месте int lines стоит int code, а на месте double (*pf)(int) стоит betsy (или во втором вызове - pam). Но я хоть убей не могу понять, каким волшебным образом компилятор понимает, что переменная int lns - это та же самая int code. Откуда он берёт это знание? С чего он вообще решил, что надо подставить вместо int lns переменную int code?
0
|
||||||
| 16.07.2014, 17:42 | |
|
Ответы с готовыми решениями:
28
Не пойму, куда и как вставить функции и указатели
Прата и умные указатели |
|
Master of Orion
|
||||||||||||
| 20.07.2014, 03:26 | ||||||||||||
0
|
||||||||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 20.07.2014, 13:40 | ||
Сообщение было отмечено gru74ik как решение
РешениеСуществование фактических аргументов функции (вышеупомянутые переменные) разнесено по времени. И нет совершенно никак объективных причин, почему бы не использовать ту же самую память (с одинаковыми адресами) в разные моменты времени. Вызовите одну функцию из другой и увидите, что адреса будут разные. А всё потому, что они уже используются (должны существовать) одновременно.
1
|
||
|
Master of Orion
|
|||||||||||
| 20.07.2014, 16:44 | |||||||||||
|
Tulosba, эмм, что? Вот вызовы по-очереди, адреса все равно разные. Изменяем этот метод:
0
|
|||||||||||
|
Master of Orion
|
|
| 20.07.2014, 21:35 | |
|
Tulosba, а, ну это логично. В принципе, если один поток всегда у процесса, то тогда первый аргумент будет всегда иметь один и тот же адрес для всех функций
0
|
|
| 20.07.2014, 21:35 | |
|
Указатели на функции. Указатели на функции как формальные параметры у функциях высшего уровня Не пойму как это Битовая арифметика в параметрах функции. Как это работает?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|