void printFunc(void(*)(int&,int&), int&);
Я не знаю, что делает этот код. Я знаю, что это прототип функции с двумя параметрами, но я не знаю, что означает первый параметр.C++ void * со ссылками в списке параметров
void printFunc(void(*)(int&,int&), int&);
Я не знаю, что делает этот код. Я знаю, что это прототип функции с двумя параметрами, но я не знаю, что означает первый параметр.C++ void * со ссылками в списке параметров
Это указатель на функцию, которая принимает два параметра int&
и возвращает void
.
Если есть идентификатор для него (скажем p
), было бы написано так:
void (*p)(int&, int&)
Тогда мы можем применить принцип «если мы набираем заявление как выражение, получим его тип. " Итак:
(*p)
означает p
указатель
(*p)(int&, int&)
означает (*p)
функция принимает два параметра int&
void (*p)(int&, int&)
означает, что он возвращает void
.
Первый параметр типа является указателем на функцию, которая принимает два аргумента, оба int&
s, и возвращает void
.
void foo(int&, int&);
Если у вас есть эта функция заявление, вы можете передать foo
в качестве аргумента printFunc
.