Софтуерно Инженерство
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 334 Точки

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

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

Благодаря.

0