Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2011, 12:12   #1
optimator
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 92
По умолчанию Ошибка при использовании темплейта

Всем доброго времени суток.
Имеется некоторый класс A
Код:
template <typename T>
class A
{
..............
}
И класс B

Код:
class B
{

...............
}
В проге использую следующим образом
Код:
A<B> a(some_argument);
При этом вылетают ошибки для всех методов класса А
Цитата:
undefined reference to A<B>::A(some_types_of_arg);
undefined reference to A<B>::name_of_methods();
Подскажите пожалуйста как исправить эту ошибку
optimator вне форума Ответить с цитированием
Старый 06.10.2011, 12:52   #2
optimator
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 92
По умолчанию

Сделал описание класса и реализацию методов в одном файле - и все работает. Есть ли способ разнести описание и реализацию шаблонного класса по разным файлам?
optimator вне форума Ответить с цитированием
Старый 06.10.2011, 13:26   #3
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию

нет, нельзя
Kukurudza вне форума Ответить с цитированием
Старый 06.10.2011, 13:44   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,708
По умолчанию

ждите, в некоторых компиляторах это уже поддерживается экспериментально

пока есть обходной путь:
1. реализацию пишите в отдельном файле, типа my_template.impl
2. в файле делаете инклуд
p51x вне форума Ответить с цитированием
Старый 06.10.2011, 13:58   #5
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию

Оо, каким образом это сделано? все же происходит на стадии компиляции
Kukurudza вне форума Ответить с цитированием
Старый 06.10.2011, 14:44   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,708
По умолчанию

так инклуд - это директива препроцессора, который отрабатывает ДО компиляции
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при использовании ICQClient Mihanches Работа с сетью в Delphi 2 04.10.2010 21:27
Ошибка при использовании CreateProcess Sadowod Общие вопросы Delphi 7 20.08.2010 17:43
ошибка в tFIBDataSet при использовании параметров. Lokos БД в Delphi 30 25.05.2010 10:32
Ошибка при использовании WorksheetFunction.VLookup imagenable@mail.ru Microsoft Office Excel 2 26.02.2010 12:04
Ошибка при использовании copyfile The Best Общие вопросы Delphi 20 22.07.2009 13:26