Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 9
1

Шаблон с параметрами по умолчанию

22.01.2014, 14:11. Просмотров 4019. Ответов 5
Метки нет (Все метки)


Подскажите пожайлуста,что можно написать в коде вместо многоточий?

Шаблон можно переписать с параметрами по умолчанию как для целого аргумента, так и для типа. Например:

C++
1
2
3
4
template <class T= int, int n= 100>
class array_n {
........
};
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2014, 14:11
Ответы с готовыми решениями:

Шаблон функции с параметрами по умолчанию
Можно ли создать такую конструкцию? Если да, можно увидеть пример?

Конструктор с параметрами по умолчанию
пытаюсь создать класс с параметрами по умолчанию(я да, надеюсь, что я не путаюсь в терминах) ...

Функция с параметрами по умолчанию
Помогите сделать прогу, Задание 1 (Функция с умалчиваемыми параметрам) Печать фамилии, курса и...

Классы и конструктор по умолчанию/с параметрами
Помогите пожалуйста! Необходимо сконструировать класс с заданным набором свойств. В данном случае,...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
5
Котовчанин
940 / 480 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
22.01.2014, 14:25 2
C++
1
template <class T= int, int n= 100>
Непонятная строка. Шаблоны используются для того, чтобы можно было подставлять любой тип вместо Т. А Вы здесь пишете что-то страшное... Определяете Т как int. Тогда вся его многогранность исчезает. Если ошибаюсь - поправьте меня.
0
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 9
22.01.2014, 14:42  [ТС] 3
в методичке был такой пример:
C++
1
2
3
4
5
6
7
template <class T,int n>
class array_n {
.......
private:
  T items[n]; //n - явно инстанцируется
};
  array_n<complex,1000> w; //w - массив комплексных чисел
и в следующем пункте:
Шаблон, рассмотренный выше в примере, можно переписать с параметрами по умолчанию как для целого аргумента, так и для типа.
Например:
C++
1
2
3
4
template <class T= int, int n= 100>
class array_n {
........
};
и меня попросили написать то,что может быть дальше вместо многоточий....
0
:)
Эксперт С++
4765 / 3259 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
22.01.2014, 15:13 4
Mariya93, непонятно чего от Вас хотят, если честно.
Может варианты использования?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
template <class T=int,int n=1000>
class array_n {
private:
  T items[n]; 
};
 
int main() {
 
    array_n<double,2000> w; // double, 2000
    array_n<double> w2; // double, 1000
    array_n<> w3; // int, 1000
 
    return 0;
}
Цитата Сообщение от Тамика Посмотреть сообщение
. Определяете Т как int. Тогда вся его многогранность исчезает.
Параметры шаблонов по умолчанию, сродни параметрам функций по умолчанию. Если параметр не задан явно, то использовать тот, который указан по умолчанию. Это бывает полезно, если в подавляющем большинстве случаев параметр имеет одно и то же значение, но всё же надо иметь возможность его менять.

Mariya93, кстати, возможно всё-таки надо написать методы доступа (т.е. public-секцию). Иначе использовать данный класс не получится. Правда это уже никак не относится к теме "параметры по умолчанию".
2
Форумчанин
Эксперт CЭксперт С++
8164 / 5012 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
22.01.2014, 15:35 5
Кстати, параметры по-умолчанию используются повсеместно. Вы бы очень мучились, каждый раз задавая все параметры.
Пример:
C++
1
2
3
template <class charT, class traits = char_traits<charT> >
  class basic_istream;
typedef basic_istream<char> istream;
istream, например это basic_istream<char, char_traits<char>> Но тут нам еще повезло - typedef есть. А вот для итераторов:
C++
1
2
3
template <class T, class charT=char, class traits=char_traits<charT>, 
          class Distance = ptrdiff_t>
  class istream_iterator;
уже при желании использовать их с параметром типа int возникли бы накладки с объявлением, а так большинство вещей указывается само или подстраивается под известные параметры шаблона. Итого - меньше текста, меньше ошибок, большая, по сравнению с отсутствием данной фишки, автоматизация.
1
Котовчанин
940 / 480 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
22.01.2014, 16:12 6
Спасибо, буду знать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2014, 16:12

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Шаблон с 4-мя параметрами
Добрый вечер. Подскажите как мне сделать шаблонную функцию с четырьмя параметрами. Т.е. должна...

Шаблон по умолчанию
template &lt;typename T = int&gt; class A { public: A(){} }; int main(int argc, char *argv) {

Класс-шаблон создание конструктора по умолчанию
Хочу создать класс-шаблон. Начал с создания конструктора по умолчанию, с этого же момента и...

Написать класс «массив» (В классе реализовать следующие методы: конструкторы (по умолчанию, с параметрами,)
помогите пожалуйста! необходимо: 1. Написать класс «массив». 2. В классе реализовать следующие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.