Шаблоны с++ |
Здравствуйте, гость ( Вход | Регистрация )
Шаблоны с++ |
kuler |
18.2.2009, 19:19
Сообщение
#1
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
есть к примеру
можно както не писать в заголовке метода template<class Type> void CClass<Type>::met() учитывая что в самом методе параметр типа не нужен? (хотелось бы void CClass::met()) |
|
|
Tonal |
19.2.2009, 9:09
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Так?
1. В твоём коде тип нужен: каким образом компилятор узнает тип val? 2. Даже в том случае, если в методе тип таки не используется, сам метод может отличатся для разных типов. Каким образом компилятор узнает для какого именно типа этот метод предназначен? Сообщение отредактировал Tonal - 19.2.2009, 9:10 |
|
|
kuler |
19.2.2009, 10:45
Сообщение
#3
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
Так? нет, забыл написать чтобы было разделение на cpp и h. Соответственно реализация вне описания. В твоём коде тип нужен: каким образом компилятор узнает тип val? посмотрит на объявление класса Каким образом компилятор узнает для какого именно типа этот метод предназначен? ну вот если идет специализация (ты же про неё?) то тогда можно и указать а по умолчанию тот же самый что в заголовке класса |
|
|
kuler |
19.2.2009, 18:04
Сообщение
#4
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
ну что, никто круто шаблоны не знает?
|
|
|
void* |
19.2.2009, 18:08
Сообщение
#5
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
|
|
|
kuler |
19.2.2009, 18:11
Сообщение
#6
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
ну мой код компилится и работает
|
|
|
kuler |
19.2.2009, 20:12
Сообщение
#7
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
кстати нашел уже неплохой метод - в студии можно добавлять методы через "add method" и шаблоны там поддерживаются, соответственно вручную писать не надо
|
|
|
AD |
19.2.2009, 21:57
Сообщение
#8
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Цитата(void*) нельзя в шаблонах выносить реализацию отдельно от описания, я почти уверен что ни один компилятор не скомпилит отдельную реализацию от описания Можно. Шаблоны необходимо описывать в inl-файлах, а потом добавлять в header в конце, после всего кода. |
|
|
Litkevich Yuriy |
19.2.2009, 21:59
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
AD |
19.2.2009, 22:02
Сообщение
#10
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
|
|
|
Текстовая версия | Сейчас: 15.1.2025, 21:45 |