Компиллятор ругается так Unresolved external ........
referenced from .......
Плз что надыть сделать Чтоб это убрлось
[Ответ]
LSL 01:29 28.02.2004
serk Забрось ты этот компилятор и почитай книжки, подобные вопросы сами отпадут.
[Ответ]
serk 22:33 01.03.2004
В том то и дело что в книгах никак не могу найти. Или не замечаю. Просто нужно помочь в онлайне в смысле проще 1 раз объяснить чем тыкать в книги. Аська моя сверху. PLS. Help. Я просто новичек в С++.
[Ответ]
LSL 23:34 01.03.2004
serk Странно что в книжках не можешь их найти. А если ты новичёк в C++ зачем тебе шаблоны классов ? Это для продвинутых.
Вот я программирую уже несколько лет и ни разу не использовал шаблоны классов [Ответ]
fishca 23:45 01.03.2004
LSL
А где ты в VB видел шаблоны классов!? :confused:
Или ты несколько лет пишешь на плюсах???????
Я думаю стоит немного всех просветить зачем мне это нужно.
Задача: Нуна создать класс который бы одновременно мог работать как с int так и с float. Пишем класс template <class T> class ...... а далее легко изменяем T на int или float не переписывая целиком все методы и прочее. Присоединяем h файл к проекту и работаем с классом. Но тут всплывает как раз синтаксис С++ и компиллятор ругается.
[Ответ]
В VB.NET, операция приведения типа,
а точнее упаковка и распаковка типа,
иногда стоит дорого. "Шаблоны", (в .NET они
будут называться "Джинерики", внутреннее устройство
и функционирование отличается от си++ - "шаблонов")
избавят от лишнего оверхединга...
[Ответ]
Oleg M. 22:17 03.03.2004
Unforgiven отличное напутствие "на будущее" . просто отлично!. :appluse:
[Ответ]
Grossmeister 23:58 03.03.2004
serk Приведи полностью сообщение компилятора.
[Ответ]
serk 00:23 05.03.2004
Привожу что есть
<code .h>template <class T>
class TListMy {
private:
typedef struct List{T Number;List* Next;}*pList,List;
int How;
pList First;
pList Last;
public:TListMy();
~TListMy();
bool Add(T Chislo);
T GetEl(int Number);
int GetHow();
void Clear();};
#endif</code .h>
то было в хедере а эт ужо описание cpp(привел один остальное аналогично):
<code .cpp>template<class T>int TListMy<T>::GetHow(){return How;}</code .cpp>
Далее инклудим в другом cpp файле и при комплилле выдает
<Error>[Linker Error] Unresolved external 'TListMy<int>::GetHow()' referenced from C:\BUILDER\BCPP6\PROJECTS\TLIST\UNIT1.OBJ</Error>
Усе вроде? Что ему нужно? Мож как то эт шаблон описывать надо по особому?
[Ответ]
LSL 01:02 05.03.2004
serk
Что это ? :0 Отформатируй код, используй тег [сode] [/сode] .
[Ответ]
Grossmeister 18:46 07.03.2004
serk Компилятор не находит реализацию функции "GetHow()". Ты в cpp подключил заголовочный файл?
[Ответ]
RomanPshenichny 20:09 07.03.2004
serk
Описание и код темплейта должен быть в .h файле.
Т.е. template<class T>int TListMy<T>::GetHow(){return How;} и ему подобное должно лежать в .h файле.
[Ответ]
serk 21:40 07.03.2004
Нуна попробовать. Возможно действительно все упирается в то, что тело функции не находиться в хедере.
Мда.... Проблемка... Ладно проверю напишу.....
[Ответ]
Grossmeister 22:02 07.03.2004
RomanPshenichny Разве? По-моему, объявление и реализация темплейта не обязательно в одном заголовочном файле должны быть.
Grossmeister добавил [date]1078690602[/date]:
Да, действительно так, см. стандарт ANSI C++ (1997), п. 14.5.2
[Ответ]
serk 22:20 07.03.2004
Вы занете пробовал тока что включение в хедер не помогло. Я вот что не пойму почему он ругается именно на obj файл того модуля к которому я подключаю хедер с описанием моего шаблона (шаблон и прога находятся в разных модулях).
serk добавил [date]1078691904[/date]:
А ларчит просто открывался просто снял в меню project->options->C++-> templates галочку со слова external и усе заработало. Теперь другие ошибки появилися но это дело наживное.
[Ответ]
Oleg M. 12:21 08.03.2004
RomanPshenichnyОписание и код темплейта должен быть в .h файле.
не обязательно, хотя чаще всего именно так.
[Ответ]
serk 23:14 08.03.2004
А на счет кода темплейта в хедере точно нуна чтоб он там был.
Проверено. Одобрено.
Минздрав предупреждает программирование опасно для вашего здаровья
[Ответ]
ШевТ 00:03 09.03.2004
unresolved external.........
а ты никакой .lib не забыл подключить?
Опции проекта:
Linker->Input
[Ответ]
кадет 09:19 10.03.2004
Что мне написать чтобы открывались файлы в с++
[Ответ]
Bais 21:09 11.03.2004
Посмотри исходники стандартных контейнеров std например vector они уж точно откомпиляться
[Ответ]