c ++ void * со ссылками в списке параметров

void printFunc( void(*)(int&,int&), int& );

Я не знаю, что делает этот код. Я знаю, что это прототип функции с двумя параметрами, но я не знаю, что означает первый параметр.

0

Решение

Первый тип параметра — это указатель на функцию, которая принимает два аргумента, оба int&с и возвращает void,

void foo(int&, int&);

Если у вас есть это объявление функции, вы можете передать foo в качестве аргумента printFunc,

2

Другие решения

Это указатель на функцию, которая занимает два int& параметры и возврат void,

Если бы был идентификатор для него (скажем, p), это будет записано так:

void (*p)(int&, int&)

Затем мы можем применить принцип «если мы введем объявление как выражение, мы получим его тип». Так:

  1. (*p) средства p это указатель

  2. (*p)(int&, int&) средства (*p) это функция, принимающая два int& параметры

  3. void (*p)(int&, int&) означает, что это возвращает void,

0

По вопросам рекламы [email protected]