В чем недостаток использования шаблонов

у них запутанная логика создания
из небольшого шаблона может получиться большая программа
шаблоны сложны в использовании

Какой будет результат следующего выражения?

template T sum(T *a, T *b)
{ T f = 5;
return (*a + *b) - f;
}
int main()
{ int i = 10, j = 20; double x = 5.1, y = 2.2;
cout << sum(&i, &j) << " " << sum(&x, &y);
}



25 2.3
20 2.3
25 22
ошибка компиляции

Укажите правильное объявление шаблона функции, если в программе производится вызов double х = zero<double>();

template TT zero() { return 0;}
template TT zero() { return 0;}
template TT zero { return 0;}

Отметьте правильный заголовок шаблона функции:

template void Sum(T x1, T x2);
class template Sum
template class
template class Sum(T x1, T x2);

Шаблон A и его специализации объявлены следующим образом:

template class A
{
public:
A(){ printf("1 ");}
};
template <> class A
{
public:
A(){ printf("2 ");}
};
template <> class A
{
public:
A(){ printf("3 ");}
};

Какой будет результат после выполнения кода
A a;
A a1;
A a2;


2 3 1
2 1 1
1 1 1
ошибка компиляции в строке "template <> class A"

Какой правильный вариант создания экземпляра объекта?

template class Matrix
{ public : Matrix(int, int);
~Matrix() { }
}


Matrix x(4, 5)
Matrix x(4, 5);
Matrix :: x(4, 5)

При определении класса-шаблона

он должен быть включен в общий контекст (namespace) STL
он должен быть наследован от класса Template
он должен быть отмечен ключевым словом template
он должен включать в себя, по крайней мере, один параметр-тип

Можно ли в шаблоне класса опеределить статический метод?

да
нет,будет ошибка компиляции
да,но результат работы программы непередсказуем

Отметьте все утверждения, которые считаете верными:

нельзя с помощью шаблона создать функцию с таким же именем, как у явно определенной функции
цель введения шаблонов – создание функций, которые могут обрабатывать разнотипные данные
в качестве описания шаблона функции используется прототип шаблона: template <список _параметров _шаблона >

Отметьте верное утверждение:

шаблон может быть членом класса или шаблона класса
шаблон может быть членом только шаблона класса
шаблон может быть членом только класса
шаблон не может быть членом класса или шаблона-класса

RSS-материал RSS-материал

Не нашли ответ на свой вопрос? Задайте его на нашем форуме.