Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 25.07.2011, 21:15   #1
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 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
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Шаблоны

Сильно не бить, может я и чего-то не знаю (с С++ не работаю), но:
#pragma once
?
(Offline)
 
Ответить с цитированием
Старый 25.07.2011, 21:34   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Шаблоны

её действие аналогично include-guard-у, но работает она на другом уровне. Иными словами - ситуацию не исправляет.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 25.07.2011, 22:27   #4
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Шаблоны

импер, конечно же телепатически мы можем тебе помочь, а чо?
ну и да, продолжай использовать странные компиляторы - на них разработка продуктивнее и всегда можно сказать что это компилятор виноват.
(Offline)
 
Ответить с цитированием
Старый 25.07.2011, 22:32   #5
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Шаблоны

импер, конечно же телепатически мы можем тебе помочь, а чо?
Вопрос теоретический, разве нет?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 25.07.2011, 22:34   #6
FDsagizi
Бывалый
 
Аватар для FDsagizi
 
Регистрация: 04.01.2008
Адрес: Казахстан \ Талдыкорган
Сообщений: 659
Написано 170 полезных сообщений
(для 509 пользователей)
Ответ: Шаблоны

до конца вопрос не реал прочитать! Рекурсия!
__________________
Жизнь как говориться игра- делать игры моя профессия(с)

Программирование, это религия! Её нужно исповедовать.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
YellowAfterlife (27.07.2011)
Старый 25.07.2011, 23:07   #7
falcon
Разработчик
 
Аватар для falcon
 
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений
(для 470 пользователей)
Ответ: Шаблоны

разве нет?
очевидно, что нет)
(Offline)
 
Ответить с цитированием
Старый 26.07.2011, 01:06   #8
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Шаблоны

кто ругается? компилятор - или линкер? если линкер - то скорее всего ошибка внутри h файла. Возможно внутри него что то определяется (а не только объявляется)

попробуй весь хидер взять в безымянное пространство имен
(Offline)
 
Ответить с цитированием
Старый 26.07.2011, 01:29   #9
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Шаблоны

Сообщение от HolyDel Посмотреть сообщение
Возможно внутри него что то определяется (а не только объявляется)
ну дак - шаблоны же. В инетах советуют не отделать их реализацию от объявления (собственно, тогда другие ошибки будут).

попробуй весь хидер взять в безымянное пространство имен
подетальней бы.

Завтра попытаюсь составить короткий пример
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 26.07.2011, 12:12   #10
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Шаблоны

В инетах советуют не отделать их реализацию от объявления
внутри h файла.

подетальней бы.
#ifndef GUARD
#define GUARD
namespace
{
...
}
#endif
внутри h файла могут объявляться какие-нибудь переменные
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (26.07.2011)
Старый 26.07.2011, 13:41   #11
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Шаблоны

Проблема решена. Разогнавшись, я влепил в h-файл реализацию ещё одного класса, агрегирующего исходный.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?

Последний раз редактировалось impersonalis, 26.07.2011 в 17:20.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 23:44.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com