Старый 24.02.2004, 02:30   #1   
Серж
 
Сообщений: 232
Регистрация: 13.02.2004
Возраст: 44

serk вне форума Не в сети
Программирование на С++,шаблоны

кто знает как писать шаблоны на С++ для классов, а то компилятор ругается, а в хелпах я ничего не нашел!?
  Ответить с цитированием
Старый 24.02.2004, 10:30   #2   
Форумец
 
Сообщений: 782
Регистрация: 09.01.2003

Unforgiven вне форума Не в сети
serk, читай Страуструпа. И на будущее:
http://abr.pp.ru/smart-questions-ru.html
  Ответить с цитированием
Старый 24.02.2004, 12:38   #3   
Серж
 
Сообщений: 232
Регистрация: 13.02.2004
Возраст: 44

serk вне форума Не в сети
А по аське не можешь помоч? 327457947
  Ответить с цитированием
Старый 28.02.2004, 01:08   #4   
Серж
 
Сообщений: 232
Регистрация: 13.02.2004
Возраст: 44

serk вне форума Не в сети
Компиллятор ругается так Unresolved external ........
referenced from .......
Плз что надыть сделать Чтоб это убрлось
  Ответить с цитированием
Старый 28.02.2004, 01:29   #5   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
serk Забрось ты этот компилятор и почитай книжки, подобные вопросы сами отпадут.
  Ответить с цитированием
Старый 01.03.2004, 22:33   #6   
Серж
 
Сообщений: 232
Регистрация: 13.02.2004
Возраст: 44

serk вне форума Не в сети
В том то и дело что в книгах никак не могу найти. Или не замечаю. Просто нужно помочь в онлайне в смысле проще 1 раз объяснить чем тыкать в книги. Аська моя сверху. PLS. Help. Я просто новичек в С++.
  Ответить с цитированием
Старый 01.03.2004, 23:34   #7   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
serk Странно что в книжках не можешь их найти. А если ты новичёк в C++ зачем тебе шаблоны классов ? Это для продвинутых.

Вот я программирую уже несколько лет и ни разу не использовал шаблоны классов
  Ответить с цитированием
Старый 01.03.2004, 23:45   #8   
Форумец
 
Аватар для fishca
 
Сообщений: 708
Регистрация: 23.12.2002
Возраст: 52
Записей в дневнике: 1

fishca вне форума Не в сети
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 - как раз для тебя, первые шаги...
  Ответить с цитированием
Старый 02.03.2004, 00:49   #9   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
fishca

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

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

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

То же самое..

LSL добавил [date]1078181444[/date]:
К сведенью: в очередноё студии "шаблоны классов" появятся в бейсике
  Ответить с цитированием
Старый 02.03.2004, 23:39   #10   
Gross
 
Аватар для Grossmeister
 
Сообщений: 985
Регистрация: 10.05.2002
Возраст: 41
Записей в дневнике: 7

Grossmeister вне форума Не в сети
serk Не в шаблонах дело.
  Ответить с цитированием
Старый 03.03.2004, 09:20   #11   
Форумец
 
Сообщений: 4,909
Регистрация: 08.04.2003
Возраст: 42

zic вне форума Не в сети
LSL
Зачем там шаблоны?
  Ответить с цитированием
Старый 03.03.2004, 12:31   #12   
Серж
 
Сообщений: 232
Регистрация: 13.02.2004
Возраст: 44

serk вне форума Не в сети
Я думаю стоит немного всех просветить зачем мне это нужно.
Задача: Нуна создать класс который бы одновременно мог работать как с int так и с float. Пишем класс template <class T> class ...... а далее легко изменяем T на int или float не переписывая целиком все методы и прочее. Присоединяем h файл к проекту и работаем с классом. Но тут всплывает как раз синтаксис С++ и компиллятор ругается.
  Ответить с цитированием
Старый 03.03.2004, 16:24   #13   
Форумец
 
Аватар для fishca
 
Сообщений: 708
Регистрация: 23.12.2002
Возраст: 52
Записей в дневнике: 1

fishca вне форума Не в сети
serk
Какой компилятор-то?
  Ответить с цитированием
Старый 03.03.2004, 17:46   #14   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
zic
Читай просвещение serk'а.

В VB.NET, операция приведения типа,
а точнее упаковка и распаковка типа,
иногда стоит дорого. "Шаблоны", (в .NET они
будут называться "Джинерики", внутреннее устройство
и функционирование отличается от си++ - "шаблонов")
избавят от лишнего оверхединга...
  Ответить с цитированием
Старый 03.03.2004, 22:17   #15   
лентяй
 
Аватар для Oleg M.
 
Сообщений: 590
Регистрация: 28.09.2003
Возраст: 45

Oleg M. вне форума Не в сети
Unforgiven отличное напутствие "на будущее" . просто отлично!. :appluse:
  Ответить с цитированием
Старый 03.03.2004, 23:58   #16   
Gross
 
Аватар для Grossmeister
 
Сообщений: 985
Регистрация: 10.05.2002
Возраст: 41
Записей в дневнике: 7

Grossmeister вне форума Не в сети
serk Приведи полностью сообщение компилятора.
  Ответить с цитированием
Старый 05.03.2004, 00:23   #17   
Серж
 
Сообщений: 232
Регистрация: 13.02.2004
Возраст: 44

serk вне форума Не в сети
Привожу что есть
<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>
Усе вроде? Что ему нужно? Мож как то эт шаблон описывать надо по особому?
  Ответить с цитированием
Старый 05.03.2004, 01:02   #18   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
serk
Что это ? :0 Отформатируй код, используй тег [сode] [/сode] .
  Ответить с цитированием
Старый 07.03.2004, 18:46   #19   
Gross
 
Аватар для Grossmeister
 
Сообщений: 985
Регистрация: 10.05.2002
Возраст: 41
Записей в дневнике: 7

Grossmeister вне форума Не в сети
serk Компилятор не находит реализацию функции "GetHow()". Ты в cpp подключил заголовочный файл?
  Ответить с цитированием
Старый 07.03.2004, 20:09   #20   
Форумец
 
Аватар для RomanPshenichny
 
Сообщений: 334
Регистрация: 14.04.2003
Возраст: 44

RomanPshenichny вне форума Не в сети
serk

Описание и код темплейта должен быть в .h файле.

Т.е. template<class T>int TListMy<T>::GetHow(){return How;} и ему подобное должно лежать в .h файле.
  Ответить с цитированием
Старый 07.03.2004, 21:40   #21   
Серж
 
Сообщений: 232
Регистрация: 13.02.2004
Возраст: 44

serk вне форума Не в сети
Нуна попробовать. Возможно действительно все упирается в то, что тело функции не находиться в хедере.
Мда.... Проблемка... Ладно проверю напишу.....
  Ответить с цитированием
Старый 07.03.2004, 22:02   #22   
Gross
 
Аватар для Grossmeister
 
Сообщений: 985
Регистрация: 10.05.2002
Возраст: 41
Записей в дневнике: 7

Grossmeister вне форума Не в сети
RomanPshenichny Разве? По-моему, объявление и реализация темплейта не обязательно в одном заголовочном файле должны быть.

Grossmeister добавил [date]1078690602[/date]:
Да, действительно так, см. стандарт ANSI C++ (1997), п. 14.5.2
  Ответить с цитированием
Старый 07.03.2004, 22:20   #23   
Серж
 
Сообщений: 232
Регистрация: 13.02.2004
Возраст: 44

serk вне форума Не в сети
Вы занете пробовал тока что включение в хедер не помогло. Я вот что не пойму почему он ругается именно на obj файл того модуля к которому я подключаю хедер с описанием моего шаблона (шаблон и прога находятся в разных модулях).

serk добавил [date]1078691904[/date]:
А ларчит просто открывался просто снял в меню project->options->C++-> templates галочку со слова external и усе заработало. Теперь другие ошибки появилися но это дело наживное.
  Ответить с цитированием
Старый 08.03.2004, 12:21   #24   
лентяй
 
Аватар для Oleg M.
 
Сообщений: 590
Регистрация: 28.09.2003
Возраст: 45

Oleg M. вне форума Не в сети
RomanPshenichny Описание и код темплейта должен быть в .h файле.
не обязательно, хотя чаще всего именно так.
  Ответить с цитированием
Старый 08.03.2004, 23:14   #25   
Серж
 
Сообщений: 232
Регистрация: 13.02.2004
Возраст: 44

serk вне форума Не в сети
А на счет кода темплейта в хедере точно нуна чтоб он там был.
Проверено. Одобрено.
Минздрав предупреждает программирование опасно для вашего здаровья
  Ответить с цитированием
Старый 09.03.2004, 00:03   #26   
Форумец
 
Сообщений: 83
Регистрация: 25.10.2003
Возраст: 39

ШевТ вне форума Не в сети
unresolved external.........

а ты никакой .lib не забыл подключить?
Опции проекта:
Linker->Input
  Ответить с цитированием
Старый 10.03.2004, 09:19   #27   
Гость
 
Сообщений: n/a

Как написать......

Что мне написать чтобы открывались файлы в с++
  Ответить с цитированием
Старый 11.03.2004, 21:09   #28   
Форумец
 
Аватар для Bais
 
Сообщений: 62
Регистрация: 25.08.2002
Возраст: 42

Bais вне форума Не в сети
Посмотри исходники стандартных контейнеров std например vector они уж точно откомпиляться
  Ответить с цитированием
Поиск в теме: 


Опции темы

Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind