Мне нужно вызвать функцию из разных аргументов из другой функции.Функция вызова из аргумента другой функции
class LST {
public:
char *value;
LST *Next;
};
bool Is_Even(LST *el) {
return true;
}
void For_Each_el(LST *&el, bool f) {
LST *H = el;
while (H) {
if (f(H)) //this line causes the error
Current = H;
H = H->Next;
}
}
Здесь ошибка:
error C2064: the result of evaluating the fragment is not a function that takes one argument
(в переводе с русского)
Таким образом, этот код не работает.
Вот как я это называю в main()
функции:
int main() {
Head = new LST;
Head->value = "4";
For_Each_el(Head, Is_Even(Head));
_getch();
}
'bool f' является булевым параметром с именем' f'. Вы вызываете его так, как будто это указатель на функцию. Также обратите внимание: у вас нет/показать конструктор, поэтому вы не можете ожидать, что 'Next' будет инициализирован на' nullptr', и если вы хотите, чтобы 'value' являлось строкой, используйте' std :: string' , – crashmstr
@ GALIAF95 Ваш код на C++ очень похож на код C. Возможно, книга или учебник были бы хорошей идеей. – Biffen