Выберите правильное (синтаксически верное) объявление функции-шаблонаfunc
, принимающей два параметра параметризующего типаtemplate <class T>
template <class T> void func(T a, T b);
 
template <T> void func(T a, T b);
 
template <struct T> void func(T a, T b);а
 
Какое объявление функции-шаблона
func
верно?
void func<T>(T a, T b);
 
template <T> void func( a, b);
 
template <class T> void func(T a, T b);
 
Укажите правильное объявление шаблона функции, если в программе производится вызов
double х = zero<double>();
template <class TT> TT zero() { return 0;}
 
template TT zero() { return 0;}
 
template <class TT> TT zero { return 0;}
 
Какой будет результат следующего выражения?
template <class T> T sum(T *a, T *b) { T f = 5; return (*a + *b) - f; } int main() { int i = 10, j = 2; double x = 10.1, y = 1.1; cout << sum(&i, &j) << " " << sum(&x, &y); }
5 6.2
 
6.2 7
 
7 6.2
 
Какая ошибка в таком определении шаблона:
template <class T, T def_val> class My {};
Какие шаблоны функций записаны неправильно?
template <class T> void f(T);
 
template <class T> void f(T*);
 
<template class T> T f(int);
 
template<int i void> f(int = i);
 
Сколько в программе может быть определений шаблона типа для функции-члена шаблонного класса?
Шаблоны каких функций можно определить в программе?
Какой будет результат следующего выражения?
template <class T> T sum(T *a, T *b) { T f = 1; return (*a + *b) - f; } int main() { int i = 5, j = 1; double x = 5., y = 6.; cout << sum(&i, &j) << " " << sum(&x, &y); }
6 7
 
5 10
 
Синтаксис объявления шаблона функции имеет вид:
template <список-параметров_шаблона> тип_возвращаемого_значения имя_функции (список параметров) {}
 
template (список-параметров_шаблона) определение_функции
 
<список-параметров_шаблона> template тип_возвращаемого_значения имя_функции (список параметров) {}
 
Выберите верные прототипы шаблонов функций:
template <class T> void f1(T);
 
template <class T, class U> char f2(T*, U);
 
template <class T> *T f3(long);
 
template <class T, class U> U f4(&T);
 
Синтаксис объявления шаблона класса имеет вид:
template <список-параметров_шаблона> определение_класса
 
template (список-параметров_шаблона) определение_класса
 
<список-параметров_шаблона> template определение_класса
 
Для списка с принудительной связью верно следующее:
Для списка без принудительной связи верно следующее:
Какие два основных вида шаблонов существуют в языке С++?
Имеется программный код:
template<class For> For adjacent_find(For first, For last); template<class For, class BinPred> For adjacent_find(For first, For last, BinPred pred); Для чего он предназначен?
Имеется программный код:
template <class In1, class In2> bool equal(In1 first1, In1 last1, In2 first2); template <class In1, class In2, class BinPred> bool equal(In1 first1, In1 last1, In2 first2, BinPred pred); Для чего он предназначен?
Отметьте все неверные утверждения:
Template
 
Выберите верные прототипы шаблонов функций:
template <class T> void f1(T, int);
 
template <class T> void f3(const T&, long);
 
template <class T > T f4(int);
 
Определен шаблон и описаны объекты класса:
template <class A, int n> class my_template {A x[n]; /*…*/}; my_template <char, 20> y1; my_template <int, 20> y2; my_template <char, 30> y3; my_template <int, 20> y4; Какой из следующих операторов не содержит ошибки:
y2=y4
 
y1=y2
 
y1=y3
 
y1=y4
 
Определен шаблон и описаны объекты класса:
template <class A> class Array { /*…*/}; Array <int> x1; Array <int> x2; Array <char> x3; Array <short> x4; Какие из следующих операторов не содержат ошибки:
x1=x2
 
x2=x3
 
x1=x3
 
x2=x4
 
Определена шаблонная функцияtemplate <class T> bool cmp(T a, T b){ return a>b? true : false;}; Как осуществить вызов функции
cmp()
для параметровint a1, double b1
?
bool c = cmp(a1, int(b1));
 
b2 = int(b1); bool c = cmp(a1, b2);
 
bool c = cmp(a1, b1);
 
Выберите вариант правильного объявления шаблона класса A:
1.template<class T> class A { public: void f(); }; template<class T> void A<T>::f(){}; 2.template<class T> class A { public: void f(); }; void A<T>::f(){};
Выберите вариант правильного объявления шаблона класса
A
:1.class A<T> { public: void f(); }; void A<T>::f(){}; 2.template<class T> class A { public: void f(){} }; template<class T> void A::f(){};
Какая строка данного кода производит специализацию шаблона?
template<class Т> class А{ int х; }; template<class Т> class А<Т*> { long х; }; template<template<class U> class V> class C{ V<int> y; V<int*> z; }; C<A> c;
Заголовок обобщенного метода
List
имеет видtemplate <class Data> void List <Data>::print();
. Что для данной записи обозначает следующее:void List <char>::print(){ ... }
Что обозначает запись
typedef basic_filebuf<char> filebuf;?
basic_filebuf
для типа данных char
 
char
 
char
 
Можно ли создать шаблон сразу по нескольким типам?
Можно ли создать шаблон c несколькими параметрами?
Есть ли ошибка в таком объявлении класса:
class A { public: template <class Type> void f1( Type ) {}; template <class Type> int f2( Type ) {}; };
template
 
Чем механизм шаблонов отличается от механизма перегрузки
Чем отличается шаблон функции от обычной функции?
Выберите правильный вариант программного кода:
1.template<typename T> class A { public: void f(){} }; class A<int> { public: void f(){} }; 2.template<typename T> class A { public: void f(){} }; template<> class A<int> { public: void f(){} };
Какой будет результат следующего выражения?
template <class T> class A { public : T x1; T x2; T func(T x3) { x3 += x1 + x2; return x3; } }; int main() { A <int> A1; A1.x1 = 3; A1.x2 = 10; cout << A1.func(1); }
10
 
14
 
11
 
Какой будет результат следующего выражения?
template <class T> class A { public : T x1; T x2; T func(T x3) { x3 += x1 + x2; return x3; } }; int main() { A <float> A1; A1.x1 = 5.5; A1.x2 = 0.6; cout << A1.func(1.1); }
8.3
 
7.2
 
10.2
 
Какой будет результат следующего выражения?
template <class T> class A { public : T x1; T x2; T func(T x3) { x3 += x1 + x2; return x3; } }; int main() { A <int> A1; A1.x1 = 5; A1.x2 = 12; cout << A1.func(1); }
13
 
18
 
17