Большой Воронежский Форум
» Программирование>Программирование на С++,шаблоны
serk 02:30 24.02.2004
кто знает как писать шаблоны на С++ для классов, а то компилятор ругается, а в хелпах я ничего не нашел!? [Ответ]
Unforgiven 10:30 24.02.2004
serk, читай Страуструпа. И на будущее:
http://abr.pp.ru/smart-questions-ru.html [Ответ]
serk 12:38 24.02.2004
А по аське не можешь помоч? 327457947 [Ответ]
serk 01:08 28.02.2004
Компиллятор ругается так 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:
Или ты несколько лет пишешь на плюсах???????

fishca добавил [date]1078177721[/date]:
serk
Ты просто поражаешь! www.ya.ru в этом сильно помогает...
http://www.yandex.ru/yandsearch?rpt=...E0%F1%F1%EE%E2

Одна из ссылок: http://www.firststeps.ru/mfc/stl/r.php?5 - как раз для тебя, первые шаги... [Ответ]
LSL 00:49 02.03.2004
fishca

А где ты в VB видел шаблоны классов!?

А я где-то обмолвился об их присутствии в нём?

Или ты несколько лет пишешь на плюсах???????

То же самое..

LSL добавил [date]1078181444[/date]:
К сведенью: в очередноё студии "шаблоны классов" появятся в бейсике [Ответ]
Grossmeister 23:39 02.03.2004
serk Не в шаблонах дело. [Ответ]
zic 09:20 03.03.2004
LSL
Зачем там шаблоны? [Ответ]
serk 12:31 03.03.2004
Я думаю стоит немного всех просветить зачем мне это нужно.
Задача: Нуна создать класс который бы одновременно мог работать как с int так и с float. Пишем класс template <class T> class ...... а далее легко изменяем T на int или float не переписывая целиком все методы и прочее. Присоединяем h файл к проекту и работаем с классом. Но тут всплывает как раз синтаксис С++ и компиллятор ругается. [Ответ]
fishca 16:24 03.03.2004
serk
Какой компилятор-то? [Ответ]
LSL 17:46 03.03.2004
zic
Читай просвещение serk'а.

В 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 они уж точно откомпиляться [Ответ]
Вверх