Function Overloading in C++ Notes | Basic Computer Engineering | RGPV BTech First Year
Function Overloading in C++ Notes | Basic Computer Engineering | RGPV BTech First Year
Function Overloading in C++
Function Overloading C++ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг Compile Time Polymorphism Feature рд╣реИред рдЗрд╕рдореЗрдВ рдПрдХ рд╣реА рдирд╛рдо (Function Name) рдХреЗ рдЕрдиреЗрдХ Functions рдмрдирд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ Parameters рдХреА рд╕рдВрдЦреНрдпрд╛ (Number of Arguments), Data Type рдЕрдерд╡рд╛ Order of Parameters рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред
Compiler Function Call рдХреЗ рд╕рдордп рджрд┐рдП рдЧрдП Arguments рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди-рд╕рд╛ Function Execute рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП Function Overloading рдХреЛ Static Binding рдЕрдерд╡рд╛ Early Binding рдХрд╛ рдЙрджрд╛рд╣рд░рдг рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
тЖУ
Different Parameters
тЖУ
Compile Time Selection
Introduction to Function Overloading
рдХрд┐рд╕реА Program рдореЗрдВ рдХрдИ рдмрд╛рд░ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╡рд╛рд▓реЗ Functions рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ Input Parameters рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рдкреНрд░рддреНрдпреЗрдХ Function рдХрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдо рд░рдЦрд╛ рдЬрд╛рдП, рддреЛ Program рдмрдбрд╝рд╛ рдПрд╡рдВ рдХрдо Readable рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди Function Overloading рд╣реИред рдЗрд╕рдореЗрдВ рдПрдХ рд╣реА Function Name рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди Parameter Lists рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ Program рдЕрдзрд┐рдХ рд╡реНрдпрд╡рд╕реНрдерд┐рдд, рд╕рд░рд▓ рдПрд╡рдВ Reusable рдмрди рдЬрд╛рддрд╛ рд╣реИред
Definition of Function Overloading
рдЬрдм рдПрдХ рд╣реА Scope рдореЗрдВ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ Functions рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рддрдерд╛ рдЙрдирдХреЗ Parameters рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ Function Overloading рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЗрд╡рд▓ Return Type рдмрджрд▓рдиреЗ рд╕реЗ Function Overloading рдирд╣реАрдВ рд╣реЛрддреАред
Need of Function Overloading
- рдПрдХ рд╣реА рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди Function Name рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
- Code Readability рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
- Code Reusability рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдПред
- Compile Time Polymorphism рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
- Different Data Types рдкрд░ рд╕рдорд╛рди Operation рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
- Program рдХреЛ Maintain рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
- Duplicate Function Names рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред
- Professional Software Development рдореЗрдВ Modular Code рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред
Features of Function Overloading
- Supports Compile Time Polymorphism.
- Same Function Name рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- Parameters рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред
- Number, Type рдпрд╛ Order of Parameters рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
- Compiler Compile Time рдкрд░ рд╕рд╣реА Function рдЪреБрдирддрд╛ рд╣реИред
- Return Type рдХреЗрд╡рд▓ рдЕрдХреЗрд▓реЗ рдмрджрд▓рдиреЗ рд╕реЗ Overloading рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрддреАред
- Program рдХреА Readability рдмрдврд╝рддреА рд╣реИред
- Code Reusability рдмреЗрд╣рддрд░ рд╣реЛрддреА рд╣реИред
Advantages of Function Overloading
| Advantage | Description |
|---|---|
| Code Reusability | рдПрдХ рд╣реА Function Name рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдИ Operations рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред |
| Easy Maintenance | Program рдЕрдзрд┐рдХ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдПрд╡рдВ Maintainable рдмрдирддрд╛ рд╣реИред |
| Compile Time Polymorphism | Compiler Compile Time рдкрд░ рд╕рд╣реА Function рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред |
| Better Readability | рд╕рдорд╛рди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА Function Name рд╣реЛрдиреЗ рд╕реЗ Code рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред |
| Flexibility | Different Types рдХреЗ Data рдкрд░ рд╕рдорд╛рди Logic рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред |
Syntax of Function Overloading
Function Overloading рдореЗрдВ рдПрдХ рд╣реА Function Name рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ-рдЕрд▓рдЧ Parameter Lists рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВред
рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ add() Function рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ Parameter Lists рдХреЗ рд╕рд╛рде Declare рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред Compiler Function Call рдХреЗ рд╕рдордп Arguments рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд╣реА Function рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред
Working of Function Overloading
рдЬрдм Program рдореЗрдВ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рдХрдИ Functions рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВ, рддрдм Compiler Function Call рдХреЗ рд╕рдордп рджрд┐рдП рдЧрдП Arguments рдХреА рд╕рдВрдЦреНрдпрд╛, Data Type рддрдерд╛ рдЙрдирдХреЗ Order рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд╣реА Function рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЪрдпрди Compile Time рдкрд░ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ Static Binding рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
тЖУ
Compiler Checks Parameters
тЖУ
Correct Overloaded Function
Function Overloading by Number of Parameters
рдпрджрд┐ рдПрдХ рд╣реА Function Name рдХреЗ рд╕рд╛рде Parameters рдХреА рд╕рдВрдЦреНрдпрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛ, рддреЛ Compiler рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ Functions рдорд╛рдирддрд╛ рд╣реИред
Function Overloading by Data Type
рдпрджрд┐ Parameters рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕рдорд╛рди рд╣реЛ рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ Data Type рдЕрд▓рдЧ рд╣реЛ, рддрдм рднреА Function Overloading рд╕рдВрднрд╡ рд╣реЛрддреА рд╣реИред
Function Overloading by Order of Parameters
рдпрджрд┐ Parameters рдХреА рд╕рдВрдЦреНрдпрд╛ рддрдерд╛ Data Types рд╕рдорд╛рди рд╣реЛрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ Order рдЕрд▓рдЧ рд╣реЛ, рддрдм рднреА Function Overloading рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
Rules of Function Overloading
- рд╕рднреА Functions рдХрд╛ Name рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
- Parameter List рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
- Parameters рдХреА рд╕рдВрдЦреНрдпрд╛, Data Type рдпрд╛ рдЙрдирдХрд╛ Order рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
- рдХреЗрд╡рд▓ Return Type рдмрджрд▓рдиреЗ рд╕реЗ Function Overloading рдирд╣реАрдВ рд╣реЛрддреАред
- Compiler Compile Time рдкрд░ Function рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред
- Function Signature рдЕрд▓рдЧ рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
- Compile Time Polymorphism рдХрд╛ рдпрд╣ рдкреНрд░рдореБрдЦ рдЙрджрд╛рд╣рд░рдг рд╣реИред
- Ambiguous Function Calls рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред
Invalid Function Overloading
рдХреЗрд╡рд▓ Return Type рдмрджрд▓рдиреЗ рдкрд░ Compiler рджреЛрдиреЛрдВ Functions рдХреЛ рдЕрд▓рдЧ рдирд╣реАрдВ рдорд╛рдирддрд╛ред рдЗрд╕рд▓рд┐рдП рдпрд╣ Function Overloading рдХрд╛ рд╕рд╣реА рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИред
рдЙрдкрд░реЛрдХреНрдд Declaration Compile Time Error рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧреА рдХреНрдпреЛрдВрдХрд┐ рджреЛрдиреЛрдВ Functions рдХреА Parameter List рд╕рдорд╛рди рд╣реИред
Function Signature
Compiler Function рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП Function Signature рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред Function Signature рдореЗрдВ Function Name рддрдерд╛ рдЙрд╕рдХреА Parameter List рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИред Return Type Function Signature рдХрд╛ рднрд╛рдЧ рдирд╣реАрдВ рд╣реЛрддреАред
| Included in Function Signature | Not Included |
|---|---|
| Function Name | Return Type |
| Number of Parameters | Parameter Names |
| Data Types of Parameters | Local Variables |
| Order of Parameters | Function Body |
Complete Program using Function Overloading
Example of Function Overloading by Order of Parameters
Real Life Applications of Function Overloading
| Application | Description |
|---|---|
| Calculator Software | Different Data Types рдкрд░ Addition, Subtraction рддрдерд╛ Multiplication рдЬреИрд╕реЗ Operations рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред |
| Graphics Programming | Shapes рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ Parameters рдХреЗ рд╕рд╛рде Draw рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред |
| Mathematical Libraries | Different Numeric Types рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди Function рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред |
| Game Development | Objects рдХреЗ рд╡рд┐рднрд┐рдиреНрди States рдХреЗ рдЕрдиреБрд╕рд╛рд░ Functions Execute рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред |
| Scientific Software | Different Precision Data Types рдкрд░ рд╕рдорд╛рди Logic рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред |
Advantages of Function Overloading
- Code Reusability рдмрдврд╝рддреА рд╣реИред
- Program рдЕрдзрд┐рдХ Readable рдмрдирддрд╛ рд╣реИред
- Compile Time Polymorphism рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
- Different Data Types рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ Function Names рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреАред
- Maintenance рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддреА рд╣реИред
- Professional Programming Standards рдХрд╛ рдкрд╛рд▓рди рд╣реЛрддрд╛ рд╣реИред
- Code Duplication рдХрдо рд╣реЛрддреА рд╣реИред
- Modular Programming рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рдорд┐рд▓рддрд╛ рд╣реИред
Limitations of Function Overloading
- Ambiguous Function Calls Compile Time Error рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреА рд╣реИрдВред
- рдХреЗрд╡рд▓ Return Type рдмрджрд▓рдХрд░ Overloading рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреАред
- рдмрд╣реБрдд рдЕрдзрд┐рдХ Overloaded Functions рд╣реЛрдиреЗ рдкрд░ Code рд╕рдордЭрдирд╛ рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
- рдЧрд▓рдд Parameter Selection рд╕реЗ Unexpected Results рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
- Complex Programs рдореЗрдВ Debugging рдХрдард┐рди рд╣реЛ рд╕рдХрддреА рд╣реИред
Difference between Function Overloading and Function Overriding
| Function Overloading | Function Overriding |
|---|---|
| Compile Time Polymorphism. | Runtime Polymorphism. |
| Same Class рдореЗрдВ рд╣реЛрддреА рд╣реИред | Base рдФрд░ Derived Class рдХреЗ рдмреАрдЪ рд╣реЛрддреА рд╣реИред |
| Parameter List рдЕрд▓рдЧ рд╣реЛрддреА рд╣реИред | Parameter List рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕рдорд╛рди рд╣реЛрддреА рд╣реИред |
| Inheritance рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред | Inheritance рдЖрд╡рд╢реНрдпрдХ рд╣реИред |
| Compile Time рдкрд░ Resolve рд╣реЛрддреА рд╣реИред | Runtime рдкрд░ Resolve рд╣реЛрддреА рд╣реИред |
Viva Questions
- What is Function Overloading?
- Why is Function Overloading used?
- Explain Compile Time Polymorphism.
- Can Return Type alone overload a Function?
- What is Function Signature?
- Explain Function Overloading by Number of Parameters.
- Explain Function Overloading by Data Type.
- Explain Function Overloading by Order of Parameters.
- Differentiate between Function Overloading and Function Overriding.
- State the advantages of Function Overloading.
Exam Oriented Important Questions
- Define Function Overloading with suitable example.
- Explain the need and features of Function Overloading.
- Write a C++ Program demonstrating Function Overloading.
- Explain Function Signature.
- Why is Return Type alone insufficient for Function Overloading?
- Explain Function Overloading by Number, Type and Order of Parameters.
- Discuss the advantages and limitations of Function Overloading.
- Differentiate between Function Overloading and Function Overriding.
- Explain Compile Time Polymorphism.
- Write short notes on Function Overloading.
Conclusion
Function Overloading C++ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг Compile Time Polymorphism Feature рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╣реА Function Name рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди Parameter Lists рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ Program рдЕрдзрд┐рдХ Readable, Reusable рдПрд╡рдВ Maintainable рдмрдирддрд╛ рд╣реИред Function Overloading рдХрд╛ рдЙрдкрдпреЛрдЧ Mathematical Operations, Graphics Programming, Scientific Applications рддрдерд╛ Professional Software Development рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред RGPV B.Tech рд╡рд┐рджреНрдпрд╛рд░реНрдерд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ Topic Theory, Practical, Viva рддрдерд╛ University Examination рдХреА рджреГрд╖реНрдЯрд┐ рд╕реЗ рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
Related Articles
Arrays in C++ Notes | One Dimensional & Two Dimensional Arrays with Programs | Basic Computer Engineering | RGPV BTech First Year
Arrays ...
Read More тЖТControl Statements in C++ Notes | Decision Making & Looping Statements | Basic Computer Engineering | RGPV BTech First Year
Control...
Read More тЖТExpressions in C++ Notes | Types of Expressions, Evaluation & Expression Statements | Basic Computer Engineering | RGPV BTech First Year
Express...
Read More тЖТOperators in C++ Notes | Arithmetic, Relational, Logical, Assignment, Bitwise Operators | Basic Computer Engineering | RGPV BTech First Year
Operato...
Read More тЖТProgram Structure in C++ Notes | Basic Computer Engineering | RGPV BTech First Year
Program...
Read More тЖТ