Ich versuche, Callback-Funktion in meinem Problem zu verwenden, aber ich habe in einigen Schwierigkeiten. In der sort()
Funktion &compareType
der Parameter einen Fehler aufweist:Callback-Funktion: Inkompatibles Argument
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);
...
}
}
"Statisch" zur Vergleichsfunktion hinzufügen. – skypjack
Machen Sie die Vergleichsfunktion eine 'statische' Memberfunktion:' static bool compareType (const Person & p1, const Person & p2) {return ...}; ' –