1.Формулировка
вопроса :
|
template
<class Type, int size>
Type min(
const Type (&r_array)[size] )
{
const
int loc_size = size;
Type
loc_array[loc_size];
//
...
}
Какого типа переменную
инициализирует size
|
|
Варианты
ответа:
|
|
|
нет
правильного ответа
|
|
|
const
int
|
|
|
int
|
|
|
const
Type
|
|
|
|
2.Формулировка
вопроса :
|
|
template
<class Type, int size>
Type min( const Type
(&r_array)[size] )
{
/*
шаблонная функция для отыскания
* минимального
значения в массиве */
Type
min_val = r_array[0];
for ( int i
= 1; i < size; ++i )
if
( r_array[i] < min_val )
min_val
= r_array[i];
return min_val;
}
Что в этом примере определяет
Type (выбери три)
|
Варианты
ответа:
|
|
|
тип
значения, возвращаемого функцией
min()
|
|
|
тип
параметра r_array
|
|
|
размер
массива r_array
|
|
|
тип
константы size
|
|
|
тип
локальной переменной min_val
|
|
|
|
|
3.Формулировка
вопроса :
|
|
Может
ли шаблон иметь более одного параметра
|
Варианты
ответа:
|
|
|
нет,
не может
|
|
|
да,
может
|
|
|
да,
только в том случае если все параметры
являются классами
|
|
|
|
|
4.Формулировка
вопроса :
|
|
Можно
ли перегружать имя шаблона класса
|
Варианты
ответа:
|
|
|
нет,
нельзя
|
|
|
да,
можно
|
|
|
в
зависимости от контекста программы
|
|
|
|
|
5.Формулировка
вопроса :
|
|
Какой
из этих типов является недопустимым
аргументом шаблона
|
Варианты
ответа:
|
|
|
все
являются допустимыми
|
|
|
list<double>
|
|
|
vector<int>
|
|
|
char*
|
|
|
double
|
|
|
int
|
|
|
|
|
6.Формулировка
вопроса :
|
|
Может
ли список параметров шаблонной
функции быть пустым
|
Варианты
ответа:
|
|
|
в
зависимости от контекста программы
|
|
|
нет,
не может
|
|
|
да,
может
|
|
|
|
|
7.Формулировка
вопроса :
|
|
Какие
из объявлений шаблонов неверны
|
Варианты
ответа:
|
|
|
template
<typename T><class U> class Container
|
|
|
template
<typename T, typename U> class Container
|
|
|
template
<typename T, class U> class Container
|
|
|
template
<class T, U> class Container
|
|
|
template
<class T1, class T2, class T3> class Container
|
|
|
|
|
8.Формулировка
вопроса :
|
|
Как
правильно объявить шаблонный класс?
|
Варианты
ответа:
|
|
|
classA
{…}
|
|
|
classQ<class
T>
{…}
|
|
|
template
classQ<class T>
{…}
|
|
|
template
<class T> class Q
{…}
|
|
|
|
|
9.Формулировка
вопроса :
|
|
Как
называется процесс генерации
объявления класса по шаблону класса
и аргументу шаблона
|
Варианты
ответа:
|
|
|
Наследование
|
|
|
Агрегация
|
|
|
Инстанцирование
|
|
|
Использование
|
|
|
|
|
10.Формулировка
вопроса :
|
|
Параметрами
шаблона могут быть:
|
Варианты
ответа:
|
|
|
параметры-типы
|
|
|
параметры
обычных типов (такие как int)
|
|
|
указатель
на функцию
|
|
|
параметры-шаблоны
|
|
|
строковая
константа
|
|
|
|
|
11.Формулировка
вопроса :
|
|
Шаблоны
представляют собой
|
Варианты
ответа:
|
|
|
полиморфизмом
времени компиляции
|
|
|
полиморфизмом
времени выполнения
|
|
|
параметрическим
полиморфизмом
|
|
|
|
|
12.Формулировка
вопроса :
|
|
Какие
из этих ключевых слов используются
только в шаблонах
|
Варианты
ответа:
|
|
|
void
|
|
|
class
|
|
|
typedef
|
|
|
template
|
|
|
public
|
|
|
|
|
13.Формулировка
вопроса :
|
|
Можно
ли в описании шаблонной функции
использовать несколько неявных
типов?
|
Варианты
ответа:
|
|
|
Нет,
только один
|
|
|
да,
только если все они – производные
от одного и того же класса
|
|
|
да
без ограничений
|
|
|
|
|
14.Формулировка
вопроса :
|
|
Пускай
имеется: template <class Type>
class
A {…}
В каких местах объявления
классов или определениях их функций
не следует указывать <Туре>
|
Варианты
ответа:
|
|
|
при
указании имени деструктора.
|
|
|
при
указании имени конструктора.
|
|
|
за
ключевым словом class в самом начале.
|
|
|
|
|
15.Формулировка
вопроса :
|
|
Пример:
1. template
<class Parm, class U>
2. Parm
minus( Parm* array, U value )
3. {
4.
Parm::name * p;
5.
}
Какое действие происходит
на 4ой строчке кода
|
Варианты
ответа:
|
|
|
объявление
указателя
|
|
|
нет
правильных ответов
|
|
|
умножение
|
|
|
возведение
в степень
|
|
|
|
|
16.Формулировка
вопроса :
|
|
Можно
ли в списке параметров шаблона
функции вместо ключевого слова class
использовать typename
|
Варианты
ответа:
|
|
|
можно,
эти ключевые слова взаимозаменяемые
|
|
|
нет,
это не допустимо
|
|
|
можно,
только в случае, когда параметров
больше двух
|
|
|
|
|
17.Формулировка
вопроса :
|
|
Какой
из следующих примеров не вызовет
ошибки
|
Варианты
ответа:
|
|
|
typedef
double Type;
template <class
Type>
Type min( Type a, Type b
)
{
Type tmp = a < b ? a : b;
return tmp;
}
|
|
|
template
<class Type>
Type min( Type
a, Type b )
{
Type tmp = a < b ? a : b;
return tmp;
|
|
|
template
<class Type>
Type min( Type a,
Type b )
{
typedef double Type;
Type
tmp = a < b ? a : b;
return
tmp;
}
|
|
|
|
|
18.Формулировка
вопроса :
|
|
Как
правильно объявить шаблон функции
|
Варианты
ответа:
|
|
|
template
void Fn<class Type>(Type param) {…}
|
|
|
void
Fn<class Type>(Type param) {…}
|
|
|
template<class
Type> void Fn(Type param) {…}
|
|
|
|