Lesson 6 | Overloading member functions |
Objective | Overload member functions in the same class. |
Overloading Member Functions in C++
Member functions within the same class
can be overloaded. Remember that a function is called based on its signature,
which is the list of argument types in its parameter list. Consider adding to the class ch_stack
a pop
operation which has an integer parameter that is the number of times the ch_stack
should be popped.
It could be added as the following function prototype within the class
:
class ch_stack {
.....
char pop(int n); //within ch_stack
.....
};
char ch_stack::pop(int n)
{
assert(n <= top);
while(n-- > 1)
top--;
return s[top--];
}
The definition that is invoked depends on the actual arguments to pop
:
data.pop(); //invokes standard pop
data.pop(5); //invokes iterated pop
A member function is conceptually part of the type. There is no distinct member function
pop
for each
ch_stack object.
There is quite a bit more to overloading functions, but this requires a more in-depth look at
polymorphism, which is covered in the third course in the
C++ for C Programmers series,
Designing Reusable Code in C++.