Hash function for custom class problem

class hashfunc
{
public:
size_t operator()(const student &s)const
{
return s.first_name.length()+s.last_name.length();
}
};

can you please explain me the idea of creating a hasfunc class …can’t we just create a simple hashfun ??

and why are we overloading function call operator … whtat’s the logic behind it…

please explain