There's not a lot of difference, but I would always use the method in the example you give. Generally I use a function where I need to do operations on type globals or all instances of the type at once. In some instances functions have the advantage in that max has function pointers but not method pointers.