Binding refers to the process of converting identifiers (such as variable and performance names) into addresses. Binding is done for each variable and functions. For functions, it means that matching the call with the right function definition by the compiler. It takes place either at compile time or at runtime.
Early Binding (compile-time time polymorphism) As the name indicates, compiler (or linker) directly associate an address to the function call. It replaces the call with a machine language instruction that tells the mainframe to leap to the address of the function.
By default early binding happens in C++. Late binding (discussed below) is achieved with the help of virtual keyword)
Late Binding : (Run time polymorphism) In this, the compiler adds code that identifies the kind of object at runtime then matches the call with the right function definition (Refer this for details). This can be achieved by declaring a virtual function.
- Function Overloading vs Function Overriding in C++
- Virtual Function in C++
- Inheritance in C++
- Polymorphism in C++
- C++ Classes and Objects
- Basic Concepts of Object Oriented Programming using C++
- Pure Virtual Functions and Abstract Classes in C++
- Operator Overloading in C++
- Friend class and function in C++
- Commonly Asked OOP Interview Questions | Set 1
- Commonly Asked C++ Interview Questions | Set 1
- Virtual Functions and Runtime Polymorphism in C++ | Set 1 (Introduction)
- Multiple Inheritance in C++
- 'this' pointer in C++
- Virtual Destructor
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.