function overloading and overriding

Download Function overloading and overriding

Post on 12-Apr-2017

265 views

Category:

Engineering

18 download

Embed Size (px)

TRANSCRIPT

AC21001: Overloading and Overriding

Function Overloading and OverridingPresented by:Rajab Ali

Overloading IntroductionOne of the more powerful features for code readability and usability is that of overloading.Like most things, it can be used for both good and evil.

Function overloading is the availability of various functions within a class that differ from each other in function signature i.e. various functions share same name with different parameter types or number of parameters. rajabalicr7@gmail.com

Functions in C++A function in C++ is not uniquely identified by its name alone.Each function has a function signature, consisting of two elements.The name of the methodThe order and type of its parameters.Together, these act as the unique identifier for a C++ method.The following thus are two different functions:addTwo (int x, int y);addTwo (float x, float y);rajabalicr7@gmail.com

Function OverloadingThe process of providing more than one functions with the same name is called method overloading.We say that these functions have been overloaded.

Overloading makes sure that we can provide a consistent and clear interface to our methods regardless of the parameters type.We dont need addTwoInts and addTwoFloats, for example.rajabalicr7@gmail.com

Function OverloadingThe compiler works out which of the methods to call based on the parameters it is passed.It will check for the method that has a matching signature.It will execute that method only.

If no matching signatures are found, a compile-time error will be displayed.rajabalicr7@gmail.com

Function Overloadingint add_nums (int one, int two) { return one + two;}int add_nums (float one, float two) { return (ceil (one + two));}

int main() { int answer_one, answer_two, answer_three;

answer_one = add_nums (1, 2); // Fine answer_two = add_nums (1.0f, 2.0f); // Fine answer_three = add_nums (1.0f, 2) // Error}

rajabalicr7@gmail.com

Function OverridingA function in child class overrides a function in parent class if they have the same name and type signature.

Classes in which functions are defined must be in a parent-child relationship.

Overloading deals with multiple functions in the same class with the same name but different signatures

Overriding deals with two functions, one in a parent class and one in a child class, that have the same signature

rajabalicr7@gmail.com

Function Overridingclass Base{ protected: void myFunc() { cout BASE DERIVED BASE DERIVED BASE DERIVED

View more >