Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Test_2_-_3_semestr.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
2 Мб
Скачать
☆

Шаблоны

 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) {…}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]