+ 1
A piece of code that completes a task and has a signature composed by return type, name and argument types. They can be generic and can be overloaded statically rewriting the same function but with different arguments, or dynamically using the virtual keyword before the return type. A pointer can point to a function.