Loading...
daskalov.iv avatar daskalov.iv 17 Точки

Референция на функция като аргумент

Здравейте.

В лекцията Memory Аccess and Мanagement от предишния курс:

https://softuni.bg/trainings/resources/video/13209/video-screen-06-march-2017-georgi-georgiev-cpp-programming-february-2017/open   

2:42:00

има пример с подаване на референция към друга функция.

Може ли някой да поясни: Защо е необходимо да подаваме като аргумент, референция към друга функция, а не просто друга функция ?

Например:

int sumOf(int numbers[], int numbersSize, bool (shouldIncludeInSum)(int))

ми връща същия резултат като:

int sumOf(int numbers[], int numbersSize, bool (&shouldIncludeInSum)(int))

и също мога да извиквам sumOf с различни функции като аргументи.

 

1
C++ Fundamentals 11/01/2018 13:07:48
kolioi avatar kolioi 641 Точки

Името на всяка функция е пойнтер (указател) към кода на функцията в паметта (също както името на всеки масив е пойнтер към началото на масива в паметта). Така че като вземеш адреса на функцията, това всъщност е самото име на тази функция. В твоя случай & е сложен просто за по-добра четимост.

2
daskalov.iv avatar daskalov.iv 17 Точки

Благодаря.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.