У меня есть структура, которая имеет функцию как один из ее членов. КакКак использовать указатель функции, являющийся членом структуры
Creature.move = moveAway;
moveAway быть имя функции. Итак, как вы можете точно использовать эту функцию?
У меня есть структура, которая имеет функцию как один из ее членов. КакКак использовать указатель функции, являющийся членом структуры
Creature.move = moveAway;
moveAway быть имя функции. Итак, как вы можете точно использовать эту функцию?
C не hav e, что означает, что ваш член, по-видимому, не является функцией, а функцией указатель. Для того, чтобы вызвать целевую функцию через этот указатель, что у вас есть выбор: либо
Creature.move(/* arguments */);
или
(*Creature.move)(/* arguments */);
Выберите какой вам больше нравится. Оба варианта делают то же самое.
элемент является указателем на функцию, и вы можете назвать это так же, как обычную функцию:
Creature.move();
Или, если он принимает дополнительные аргументы:
Creature.move(arg1, arg2, arg3);
(Вы можете разыменовать функции указатель сначала, если хотите, но он просто распадется обратно на функцию указателя: (*Creature.move)();
, (**Creature.move)();
, (*****Creature.move)();
, ...)
C не позволяет членам функции, так как это не язык ООП. Вы можете смутить C++. Предоставьте [mcve] – Olaf