Answer:
A template function overloads itself as needed. But we can explicitly overload it too. Overloading a function template means having different sets of function templates which differ in their parameter list. Consider following example:
#include <iostream>
template <class X> void func(X a)
{
// Function code;
cout <<”Inside f(X a) \n”;
}
template <class X, class Y> void func(X a, Y b) //overloading function template func()
{
// Function code;
cout <<”Inside f(X a, Y b) \n”;
}
int main()
{
func(10); // calls func(X a)
func(10, 20); // calls func(X a, Y b)
return 0;
}
#include <iostream>
template <class X> void func(X a)
{
// Function code;
cout <<”Inside f(X a) \n”;
}
template <class X, class Y> void func(X a, Y b) //overloading function template func()
{
// Function code;
cout <<”Inside f(X a, Y b) \n”;
}
int main()
{
func(10); // calls func(X a)
func(10, 20); // calls func(X a, Y b)
return 0;
}
Previous Question | Next Question |
Explain function overloading? | Can you please explain operator overloading? |