Class methods are registered with the RegisterObjectMethod call. Both non-virtual and virtual methods are registered the same way.
Static class methods are in reality global functions so those should be registered as global functions and not as object methods.
It is also possible to register a global function that takes a pointer to the object as a class method. This can be used to extend the functionality of a class when accessed via AngelScript, without actually changing the C++ implementation of the class.