Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
insideone
Модератор
Автор FAQ
 Аватар для insideone
3634 / 912 / 48
Регистрация: 10.01.2010
Сообщений: 2,457
#1

Шаблоны классов. Ошибка параметра по умолчанию - C++

21.04.2010, 23:23. Просмотров 1660. Ответов 11
Метки нет (Все метки)

Есть
C++
1
template <class data_type> class List;
и
C++
1
2
typedef unsigned char point_dist;
template <class data_type = point_dist> class point;
Первая из ошибок...
C++
1
2
3
4
5
6
class PathFind{
    point_dist** map;
    point_dist xlen, ylen;
    List<point> Path;
// ...
}
А именно на этой строке
C++
1
List<point> Path;
error C3203: point: неспециализированный класс шаблон нельзя использовать в качестве аргумента шаблон для параметра шаблон "data_type", ожидается действительный тип
Если указать параметр
C++
1
List<point<int>> Path;
Ошибка пропадает. Но мне хотелось бы чтобы параметр по умолчанию работал, т.к. мне чаще приходится работать с классом одного типа и раздувать запись и переписывать предыдущий код не очень хочется. Что не так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Seishin
12 / 12 / 2
Регистрация: 15.04.2010
Сообщений: 31
21.04.2010, 23:53     Шаблоны классов. Ошибка параметра по умолчанию #2
C++
1
List< point<> > Path;
Так вот применяются параметры по умолчанию
insideone
Модератор
Автор FAQ
 Аватар для insideone
3634 / 912 / 48
Регистрация: 10.01.2010
Сообщений: 2,457
22.04.2010, 00:51  [ТС]     Шаблоны классов. Ошибка параметра по умолчанию #3
Спасибо, действительно заработало. Странно, ведь в stl сплошные шаблоны но указывать ничего не надо, как так? Дополнительные <> писать как то не очень красиво...
Seishin
12 / 12 / 2
Регистрация: 15.04.2010
Сообщений: 31
22.04.2010, 00:59     Шаблоны классов. Ошибка параметра по умолчанию #4
Шаблонов в stl то конечно много, но чтот я там не часто видел, чтобы ВСЕ параметры задавались по умолчанию, обычно там есть обязательные параметры, поэтому, наверно, не обращаешь внимание на необязательные...
insideone
Модератор
Автор FAQ
 Аватар для insideone
3634 / 912 / 48
Регистрация: 10.01.2010
Сообщений: 2,457
22.04.2010, 14:49  [ТС]     Шаблоны классов. Ошибка параметра по умолчанию #5
Seishin, Т.е. нормальным решением данного вопроса остается только написание <> всегда когда надо использовать параметр по умолчанию или написание такого
C++
1
typedef point<> ipoint;
И вызов cpoint когда речь идет о параметре по умолчанию?
Seishin
12 / 12 / 2
Регистрация: 15.04.2010
Сообщений: 31
22.04.2010, 17:03     Шаблоны классов. Ошибка параметра по умолчанию #6
Тебя красота что ли волнует... Другого решения я не знаю, да и, думаю, нет его... А typedef-ить - это уже личное дело, мне кажется, что так несколько запутаннее получается( в данном случае ).
insideone
Модератор
Автор FAQ
 Аватар для insideone
3634 / 912 / 48
Регистрация: 10.01.2010
Сообщений: 2,457
22.04.2010, 17:24  [ТС]     Шаблоны классов. Ошибка параметра по умолчанию #7
Мне тяжело ориентироваться в коде где много <>. Незнаю уж почему )
Seishin
12 / 12 / 2
Регистрация: 15.04.2010
Сообщений: 31
22.04.2010, 21:24     Шаблоны классов. Ошибка параметра по умолчанию #8
Гыы, ну не думаю, что у тя задача написать свою stl, в которую порой залезешь посмотреть и только и остается тихо офигевать - как все это работает и блин где тут начало))
fasked
Эксперт C++
 Аватар для fasked
4929 / 2509 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
22.04.2010, 21:29     Шаблоны классов. Ошибка параметра по умолчанию #9
может попробовать такую запись тогда?
C++
1
typedef point<point_dist> PointD;
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2297 / 1667 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
22.04.2010, 21:34     Шаблоны классов. Ошибка параметра по умолчанию #10
insideone, Seishin прав, для использования аргументов по умолчанию нужно указывать пустые скобки. Подробнее здесь.
insideone
Модератор
Автор FAQ
 Аватар для insideone
3634 / 912 / 48
Регистрация: 10.01.2010
Сообщений: 2,457
22.04.2010, 21:57  [ТС]     Шаблоны классов. Ошибка параметра по умолчанию #11
Seishin, это точно)) да нет, я так.. по мелочи

fasked, заметьте - я выше об этом догадался пожалуй это единственный для меня вариант)

CyBOSSeR, будем знать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2010, 22:30     Шаблоны классов. Ошибка параметра по умолчанию
Еще ссылки по теме:

C++ Шаблоны и параметр по умолчанию
C++ Шаблоны классов
Шаблоны классов C++
C++ Шаблоны классов
C++ Шаблоны классов

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

Или воспользуйтесь поиском по форуму:
fasked
Эксперт C++
 Аватар для fasked
4929 / 2509 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
22.04.2010, 22:30     Шаблоны классов. Ошибка параметра по умолчанию #12
Цитата Сообщение от insideone Посмотреть сообщение
fasked, заметьте - я выше об этом догадался пожалуй это единственный для меня вариант)
не заметил
Yandex
Объявления
22.04.2010, 22:30     Шаблоны классов. Ошибка параметра по умолчанию
Ответ Создать тему
Опции темы

Текущее время: 17:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru