C++ | Templates | Question 9

Output?

#include <iostream>
using namespace std;

template <class T>
T max (T &a, T &b)
{
    return (a > b)? a : b;
}

template <>
int max <int> (int &a, int &b)
{
    cout << "Called ";
    return (a > b)? a : b;
}

int main ()
{
    int a = 10, b = 20;
    cout << max <int> (a, b);
}

(A) 20
(B) Called 20
(C) Compiler Error


Answer: (B)

Explanation: Above program is an example of template specialization. Sometime we want a different behaviour of a function/class template for a particular data type. For this, we can create a specialized version for that particular data type.

Quiz of this Question






Practice Tags :

Recommended Posts:



0 Average Difficulty : 0/5.0
No votes yet.