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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
insideone
Модератор
Автор FAQ
 Аватар для insideone
3622 / 900 / 47
Регистрация: 10.01.2010
Сообщений: 2,429
21.04.2010, 23:23     Шаблоны классов. Ошибка параметра по умолчанию #1
Есть
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;
Ошибка пропадает. Но мне хотелось бы чтобы параметр по умолчанию работал, т.к. мне чаще приходится работать с классом одного типа и раздувать запись и переписывать предыдущий код не очень хочется. Что не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2010, 23:23     Шаблоны классов. Ошибка параметра по умолчанию
Посмотрите здесь:

C++ Шаблоны классов
C++ Шаблоны классов
Шаблоны классов C++
ошибка при компиляции проги, использущей шаблоны классов C++
Шаблоны классов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Seishin
12 / 12 / 2
Регистрация: 15.04.2010
Сообщений: 31
21.04.2010, 23:53     Шаблоны классов. Ошибка параметра по умолчанию #2
C++
1
List< point<> > Path;
Так вот применяются параметры по умолчанию
insideone
Модератор
Автор FAQ
 Аватар для insideone
3622 / 900 / 47
Регистрация: 10.01.2010
Сообщений: 2,429
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
3622 / 900 / 47
Регистрация: 10.01.2010
Сообщений: 2,429
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
3622 / 900 / 47
Регистрация: 10.01.2010
Сообщений: 2,429
22.04.2010, 17:24  [ТС]     Шаблоны классов. Ошибка параметра по умолчанию #7
Мне тяжело ориентироваться в коде где много <>. Незнаю уж почему )
Seishin
12 / 12 / 2
Регистрация: 15.04.2010
Сообщений: 31
22.04.2010, 21:24     Шаблоны классов. Ошибка параметра по умолчанию #8
Гыы, ну не думаю, что у тя задача написать свою stl, в которую порой залезешь посмотреть и только и остается тихо офигевать - как все это работает и блин где тут начало))
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
22.04.2010, 21:29     Шаблоны классов. Ошибка параметра по умолчанию #9
может попробовать такую запись тогда?
C++
1
typedef point<point_dist> PointD;
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
22.04.2010, 21:34     Шаблоны классов. Ошибка параметра по умолчанию #10
insideone, Seishin прав, для использования аргументов по умолчанию нужно указывать пустые скобки. Подробнее здесь.
insideone
Модератор
Автор FAQ
 Аватар для insideone
3622 / 900 / 47
Регистрация: 10.01.2010
Сообщений: 2,429
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++ Шаблоны и параметр по умолчанию

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

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

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