Точка использует Функциональные указатели . Для очень грубого примера, предположим, что у вас есть класс, имеющий несколько переменных-членов, по которым вам может понадобиться отсортировать элементы массива этого типа класса, например:
struct CL {
int x, y, z;
};
bool sort_by_x(const CL& obj1, const CL& obj2);
bool sort_by_y(const CL& obj1, const CL& obj2);
bool sort_by_z(const CL& obj1, const CL& obj2);
...
CL obj[100];
...
sort(obj, obj+100, sort_by_x);
...
sort(obj, obj+100, sort_by_y);
...
sort(obj, obj+100, sort_by_z);
Здесь std :: sort используется для сортировки массива объектов CL. Посмотрите на третий параметр, это имя функции. Функция std :: sort может взять указатель на функцию в третьем параметре и использовать эту функцию в качестве компаратора для сортировки массива. Нам решать, как определить функции sort_by_ *, чтобы std :: sort работал как положено.