|
25.07.2011, 21:15
|
#1
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Шаблоны
1) Реализация template-ов должна храниться вместе с объявлением, т.е. в заголовочном файле. Файл, как положено, имеет include-guard.
2) Однако при попытке собрать программу получаю ошибку и сообщение о множественном определении шаблонных функций (номера строчек у всех реализаций совпадают, т.е. по сути дело в множественном подключении файла - но ведь см.п.1)
Что я делаю не так?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
25.07.2011, 21:25
|
#2
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Шаблоны
Сильно не бить, может я и чего-то не знаю (с С++ не работаю), но:
?
|
(Offline)
|
|
25.07.2011, 21:34
|
#3
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Шаблоны
её действие аналогично include-guard-у, но работает она на другом уровне. Иными словами - ситуацию не исправляет.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
25.07.2011, 22:27
|
#4
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: Шаблоны
импер, конечно же телепатически мы можем тебе помочь, а чо?
ну и да, продолжай использовать странные компиляторы - на них разработка продуктивнее и всегда можно сказать что это компилятор виноват.
|
(Offline)
|
|
25.07.2011, 22:32
|
#5
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Шаблоны
импер, конечно же телепатически мы можем тебе помочь, а чо?
|
Вопрос теоретический, разве нет?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
25.07.2011, 22:34
|
#6
|
Бывалый
Регистрация: 04.01.2008
Адрес: Казахстан \ Талдыкорган
Сообщений: 659
Написано 170 полезных сообщений (для 509 пользователей)
|
Ответ: Шаблоны
до конца вопрос не реал прочитать! Рекурсия!
__________________
Жизнь как говориться игра- делать игры моя профессия(с)
Программирование, это религия! Её нужно исповедовать.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
25.07.2011, 23:07
|
#7
|
Разработчик
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений (для 470 пользователей)
|
Ответ: Шаблоны
|
(Offline)
|
|
26.07.2011, 01:06
|
#8
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Шаблоны
кто ругается? компилятор - или линкер? если линкер - то скорее всего ошибка внутри h файла. Возможно внутри него что то определяется (а не только объявляется)
попробуй весь хидер взять в безымянное пространство имен
|
(Offline)
|
|
26.07.2011, 01:29
|
#9
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Шаблоны
Сообщение от HolyDel
Возможно внутри него что то определяется (а не только объявляется)
|
ну дак - шаблоны же. В инетах советуют не отделать их реализацию от объявления (собственно, тогда другие ошибки будут).
попробуй весь хидер взять в безымянное пространство имен
|
подетальней бы.
Завтра попытаюсь составить короткий пример
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
26.07.2011, 12:12
|
#10
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Шаблоны
В инетах советуют не отделать их реализацию от объявления
|
внутри h файла.
#ifndef GUARD
#define GUARD
namespace
{
...
}
#endif
внутри h файла могут объявляться какие-нибудь переменные
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.07.2011, 13:41
|
#11
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Шаблоны
Проблема решена. Разогнавшись, я влепил в h-файл реализацию ещё одного класса, агрегирующего исходный.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
Последний раз редактировалось impersonalis, 26.07.2011 в 17:20.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:04.
|