Рубрики

C ++ | Шаблоны | Вопрос 9

Выход?

#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);

}

(А) 20
(B) называется 20
(C) Ошибка компилятора

Ответ: (Б)
Пояснение: Выше приведен пример специализации шаблона. Иногда нам требуется другое поведение шаблона функции / класса для определенного типа данных. Для этого мы можем создать специализированную версию для этого конкретного типа данных.
Тест на этот вопрос

Рекомендуемые посты:

C ++ | Шаблоны | Вопрос 9

0.00 (0%) 0 votes