Se debe llamar a la referencia de error de C ++ a la función miembro no estática

C Error Reference Non Static Member Function Must Be Called

Encontré este error cuando revisé 435 preguntas en leetcode hoy:

solution.cpp: En la función miembro eraseOverlapIntervals Línea 19: Char 51:error: uso no válido de la función miembro no estática'solución bool :: cmp (const Interval &, const Interval &)' sort (intervals.begin (), interval.end (), cmp)



el código se muestra a continuación:



|_+_|

Antes de escribir la función cmp, se escribió fuera de la clase. Esta vez lo encontré en la clase y me resultó imposible. . Piense detenidamente en este grave problema, así que escriba un artículo para registrarlo.



Para funciones miembro como bool cmp (const Interval & a, const Interval & b), pertenece a la clase, por lo que llamarlo debe requerir un objeto. Esto se debe a que la etiqueta completa para funciones como bool cmp es:

bool cmp (Solución * this, const Interval & a, const Interval & b)

Es decir, tiene un parámetro implícito (parámetro implícito), lo que hace que no pueda ser llamado por una función como sort (), principalmente porque los parámetros no coinciden. Por supuesto, cambie esta función a estática.