RE:Que son funciones estaticas?
Un método estático de una clase es un método "compartido" entre todas las instancias de la clase.
Eso quiere decir, que como no pertenece a una instancia concreta, en él no puedes usar el puntero this ni ningún atributo de la clase que no sea estático.
Otra particularidad del método estático es que su código empieza en una dirección de memoria fija desde el principio del programa hasta el final. Eso permite que lo puedas pasar como parámetro a otra función (y que yo sepa, es su utilidad principal).
También es posible llamarlo sin necesidad de instanciar ninguna clase. Bastaría con poner
{
Mi_Clase::Metodo_Estatico(...);
}
Los no estáticos son los métodos normales de toda la vida.
Espero que te sirva de ayuda.
Se bueno