Skip to content
Related Articles

Related Articles

C++ | Templates | Question 3
  • Last Updated : 23 Oct, 2020




#include <iostream>
using namespace std;
  
template <typename T>
T max(T x, T y)
{
    return (x > y)? x : y;
}
int main()
{
    cout << max(3, 7) << std::endl;
    cout << max(3.0, 7.0) << std::endl;
    cout << max(3, 7.0) << std::endl;
    return 0;
}

(A)

7
7.0
7.0

(B) Compiler Error in all cout statements as data type is not specified.
(C) Compiler Error in last cout statement as call to max is ambiguous.
(D) None of the above


Answer: (C)

Explanation: The first and second call to max function is a valid call as both the arguments passed are of same data type (i.e int and float respectively). But the third call to max function has arguments of different data type and hence it will generate Compiler Error in last cout statement as call to max is ambiguous. Hence option C is correct

Quiz of this Question

My Personal Notes arrow_drop_up
Recommended Articles
Page :