![]() |
|
Модераторы: bsa |
![]()
|
|
| iSpite |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 24.4.2010 Репутация: нет Всего: нет |
есть файл 001.cpp
в rectangle.cpp
в rectangle.h
описал класс было всё ОК. при попытке описать шаблон выдал ошибку линковки подскажите как исправить. |
||||||
|
|||||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Шаблоны в заголовочных файлах описывать нужно. Нету пока что настолько умных компиляторов С++, что скомпилить всего одну реализацию и потом инстанциировать по бинарнику. Компилятор хочет видеть всю реализацию в заголовке. Возможно со временем компиляторы поумнеют и справятся с этой задачей.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| toxx |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 4 Всего: 13 |
unresolved external symbol означает, что нигде линковщик не может найти определение чего-либо(функции, метода).
|
|||
|
||||
| iSpite |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 24.4.2010 Репутация: нет Всего: нет |
так что добавить в заголовок??? как описать? |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
iSpite, все писать в хедере. Или сделать в нем include"rectagle.cpp". Второй вариант иногда используется, но лично я его не люблю.
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Все что есть цппшнике закинуть в заголовочный файл где описан шаблон. Компилятору чтобы все разрулить нужен полный исходник. цпп файл дает обж, который можно только слинковать. Линкер не умеет линковать реализацию шаблона, поэтому это должен делать компилятор. Компилятор должен на каждый цппшник где используется шаблон сгенерить свою реализацию по коду из заголовка. Потом линкер объединить одинаковые реализации, но это уже не имеет отношения к вопросу -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| iSpite |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 24.4.2010 Репутация: нет Всего: нет |
не годиться =( C1076: compiler limit : internal heap limit reached пишет что в бесконечную рекурсию уходит писать всё в хэдере нельзя условие л\р |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Тогда опиши тайпдефами всевозможные подстановки типов. Весь код не нужно переносить в заголовки. Нужно переносить только реализацию шаблонов. Код использующий шаблоны может быть где угодно.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| djamshud |
|
||||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
iSpite, почитате про препроцессор.
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |