Static binding is that in which selection of function takes place at compile time. i.e. the compiler knows which function is being selected at compile time. For example function overloading. Dynamic binding is that in which selection of function takes place at run time. Till run time, the compiler is unknown about which function is being called. For example Virtual Function.