Я пытаюсь использовать функцию обратного вызова в своей проблеме, но у меня возникли некоторые проблемы. В функции sort()
, параметр &compareType
имеет ошибку:Функция обратного вызова: Несовместимый аргумент
Argument of type "bool (Person::*)(const Person& p1, const Person& p2)" is incompatible with parameter of type "compare"`
person.h
class Person
{
public:
bool compareType(const Person& p1, const Person& p2) { return ... };
void sort()
{
...
list->addInOrder(person, &compareType);
...
}
...
}
dlinkedlist.h
typedef bool (*compare)(const Person& p1, const Person&p2);
class dlinkedlist
{
public:
void addInOrder(const Person& person, compare comparefunc)
{
Person person2;
...
comparefunc(person, person2);
...
}
}
Добавить 'static' в функцию сравнения. – skypjack
Сделать функцию сравнения функцией 'static' member:' static bool compareType (const Person & p1, const Person & p2) {return ...}; ' –