C++ Programming - OOPS Concepts - Discussion
Discussion Forum : OOPS Concepts - General Questions (Q.No. 14)
14.
How many types of polymorphisms are supported by C++?
Answer: Option
Explanation:
The two main types of polymorphism are run-time (implemented as inheritance and virtual functions), and compile-time (implemented as templates).
Discussion:
20 comments Page 2 of 2.
Gajanan Waghode said:
1 decade ago
Polymorphism.
Polymorphism is the phenomenon where the same message sent to two different objects produces two different set of actions.
Polymorphism is broadly divided into two parts:.
Static polymorphism – exhibited by overloaded functions.
Dynamic polymorphism – exhibited by using late binding.
Static Polymorphism.
Static polymorphism refers to an entity existing in different physical forms simultaneously. Static polymorphism involves binding of functions based on the number, type, and sequence of arguments. The various types of parameters are specified in the function declaration, and therefore the function can be bound to calls at compile time. This form of association is called early binding. The term early binding stems from the fact that when the program is executed, the calls are already bound to the appropriate functions.
The resolution of a function call is based on number, type, and sequence of arguments declared for each form of the function. Consider the following function declaration:.
Void add (int, int) ;.
Void add (float, float) ;.
When the add () function is invoked, the parameters passed to it will determine which version of the function will be executed. This resolution is done at compile time.
Dynamic Polymorphism.
Dynamic polymorphism refers to an entity changing its form depending on the circumstances. A function is said to exhibit dynamic polymorphism when it exists in more than one form, and calls to its various forms are resolved dynamically when the program is executed. The term late binding refers to the resolution of the functions at run-time instead of compile time. This feature increases the flexibility of the program by allowing the appropriate method to be invoked, depending on the context.
Static Vs Dynamic Polymorphism.
Static polymorphism is considered more efficient, and dynamic polymorphism more flexible.
Statically bound methods are those methods that are bound to their calls at compile time. Dynamic function calls are bound to the functions during run-time. This involves the additional step of searching the functions during run-time. On the other hand, no run-time search is required for statically bound functions.
As applications are becoming larger and more complicated, the need for flexibility is increasing rapidly. Most users have to periodically upgrade their software, and this could become a very tedious task if static polymorphism is applied. This is because any change in requirements requires a major modification in the code. In the case of dynamic binding, the function calls are resolved at run-time, thereby giving the user the flexibility to alter the call without having to modify the code.
To the programmer, efficiency and performance would probably be a primary concern, but to the user, flexibility or maintainability may be much more important. The decision is thus a trade-off between efficiency and flexibility.
Polymorphism is the phenomenon where the same message sent to two different objects produces two different set of actions.
Polymorphism is broadly divided into two parts:.
Static polymorphism – exhibited by overloaded functions.
Dynamic polymorphism – exhibited by using late binding.
Static Polymorphism.
Static polymorphism refers to an entity existing in different physical forms simultaneously. Static polymorphism involves binding of functions based on the number, type, and sequence of arguments. The various types of parameters are specified in the function declaration, and therefore the function can be bound to calls at compile time. This form of association is called early binding. The term early binding stems from the fact that when the program is executed, the calls are already bound to the appropriate functions.
The resolution of a function call is based on number, type, and sequence of arguments declared for each form of the function. Consider the following function declaration:.
Void add (int, int) ;.
Void add (float, float) ;.
When the add () function is invoked, the parameters passed to it will determine which version of the function will be executed. This resolution is done at compile time.
Dynamic Polymorphism.
Dynamic polymorphism refers to an entity changing its form depending on the circumstances. A function is said to exhibit dynamic polymorphism when it exists in more than one form, and calls to its various forms are resolved dynamically when the program is executed. The term late binding refers to the resolution of the functions at run-time instead of compile time. This feature increases the flexibility of the program by allowing the appropriate method to be invoked, depending on the context.
Static Vs Dynamic Polymorphism.
Static polymorphism is considered more efficient, and dynamic polymorphism more flexible.
Statically bound methods are those methods that are bound to their calls at compile time. Dynamic function calls are bound to the functions during run-time. This involves the additional step of searching the functions during run-time. On the other hand, no run-time search is required for statically bound functions.
As applications are becoming larger and more complicated, the need for flexibility is increasing rapidly. Most users have to periodically upgrade their software, and this could become a very tedious task if static polymorphism is applied. This is because any change in requirements requires a major modification in the code. In the case of dynamic binding, the function calls are resolved at run-time, thereby giving the user the flexibility to alter the call without having to modify the code.
To the programmer, efficiency and performance would probably be a primary concern, but to the user, flexibility or maintainability may be much more important. The decision is thus a trade-off between efficiency and flexibility.
SankararaoMajji said:
1 decade ago
Compile time polymorphism
- function and operator overloading
- Templates
Run time polymorphism
- function over riding
- function and operator overloading
- Templates
Run time polymorphism
- function over riding
Abhishek said:
1 decade ago
Run time polymorphism & Compile time polymorphism.
Rekha said:
1 decade ago
Types of Polymorphism:
1. Static / Compile time / Early binding polymorphism :
a. Function overloading
b. Operator overloading
2. Dynamic / Run time / Late binding:
a. Virtual function
1. Static / Compile time / Early binding polymorphism :
a. Function overloading
b. Operator overloading
2. Dynamic / Run time / Late binding:
a. Virtual function
Hema priya said:
1 decade ago
1) Run time polymorphism.
2) Compile time polymorphism.
2) Compile time polymorphism.
PEEYUSH said:
1 decade ago
1.Static polymorphism
2.Dynamic polymorphism
2.Dynamic polymorphism
Money chopra said:
1 decade ago
First one is static: function overloading and operator overloading fall under this type of polymorphism.
Second one is dynamic: it is implemented by using virtual functions.
Second one is dynamic: it is implemented by using virtual functions.
AgileGroup said:
1 decade ago
1)Complie time Polymorphism : -
a) Function Overloading
b) Operator Overloading
2) Run-time Polymorphism : -
a) Virtual Functions
a) Function Overloading
b) Operator Overloading
2) Run-time Polymorphism : -
a) Virtual Functions
Raghav said:
1 decade ago
1st is Compile Time Polymorphism and Another is Run Time Polymorphism.
M.R.R said:
1 decade ago
There are two types
1. Operator overloading
2. Function overloading
1. Operator overloading
2. Function overloading
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers