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