![]() |
|
Модераторы: bsa |
![]()
|
|
| tarasrng |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 8.7.2011 Репутация: нет Всего: нет |
Привет. пишу программу, используя шаблоны. весь код лежит в Unit1.cpp:
при компиляции выдает ошибки: [Linker Error] Unresolved external 'ComplexString<double>::~ComplexString<double>()' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ [Linker Error] Unresolved external 'SymbString<double>::~SymbString<double>()' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ [Linker Error] Unresolved external 'OperateC(ComplexString<T>&)' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ [Linker Error] Unresolved external 'ComplexString<double>::ComplexString<double>(const char *)' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ [Linker Error] Unresolved external 'ComplexString<double>::PutComplexString()' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ [Linker Error] Unresolved external 'ComplexString<double>::operator +(ComplexString<double>&)' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ [Linker Error] Unresolved external 'ComplexString<double>::operator -(ComplexString<double>&)' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ [Linker Error] Unresolved external 'ComplexString<double>::operator *(ComplexString<double>&)' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ [Linker Error] Unresolved external 'ComplexString<double>::operator /(ComplexString<double>&)' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ [Linker Error] Unresolved external 'ComplexString<double>::operator =(const ComplexString<double>&)' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ [Linker Error] Unresolved external 'operator <<(_STL::basic_ostream<char, _STL::char_traits<char> >&, ComplexString<double>&)' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ [Linker Error] Unresolved external 'ComplexString<double>::Check(char *)' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ [Linker Error] Unresolved external 'ComplexString<double>::Convert(char *)' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ [Linker Error] Unresolved external 'ComplexString<double>::ComplexString<double>()' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ [Linker Error] Unresolved external 'operator >>(_STL::basic_istream<char, _STL::char_traits<char> >&, ComplexString<double>&)' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ [Linker Error] Unresolved external 'ComplexString<double>::operator ==(ComplexString<double>&)' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ подскажите, пожалуйста, как исправить? Присоединённый файл ( Кол-во скачиваний: 2 )
Unit1.cpp 30,68 Kb |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
хммм. и такое компилируется в билдере ? не должно. перед описанием шаблонной функции (хоть простой, хоть метода класса) нужно сказать, что она шаблонная
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| tarasrng |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 8.7.2011 Репутация: нет Всего: нет |
borisbn,
я указал, что функции шаблонные.
осталось две ошибки [Linker Error] Unresolved external 'void OperateC<T>(ComplexString<T>&)' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ [Linker Error] Unresolved external 'void OperateC<double>(ComplexString<double>&)' referenced from D:\КУРСОВА БРИНДАС\LAST\UNIT1.OBJ помогите, плз |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
ничего в глаза не бросается ? -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| tarasrng |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 8.7.2011 Репутация: нет Всего: нет |
borisbn,
исправил. теперь вот здесь например
[C++ Error] Unit1.cpp(550): E2094 'operator+' not implemented in type 'ComplexString<T>' for arguments of type 'ComplexString<double>' я же шаблон сделал, чтобы потом работать например с типом double, или int, почему ошибки то? вот оператор +
аналогично здесь ругаеться на минус
[C++ Error] Unit1.cpp(562): E2094 'operator-' not implemented in type 'ComplexString<T>' for arguments of type 'ComplexString<double>' и на умножение, и деление а на присвоение
вот так говорит: [C++ Error] Unit1.cpp(598): E2094 'operator==' not implemented in type 'ComplexString<double>' for arguments of type 'ComplexString<T>' извените за ламерство, я на java програмирую, с++ знаю, но с шаблонами крайне плохо знаком. помогите пожалуйста разобраться. |
||||||||
|
|||||||||
| bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Это сообщение отредактировал(а) bsa - 11.5.2012, 00:21 |
||||
|
|||||
| tarasrng |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 8.7.2011 Репутация: нет Всего: нет |
заменил. ничего не изменилось. [C++ Error] Unit1.cpp(550): E2094 'operator+' not implemented in type 'ComplexString<T>' for arguments of type 'ComplexString<double>' [C++ Error] Unit1.cpp(562): E2094 'operator-' not implemented in type 'ComplexString<T>' for arguments of type 'ComplexString<double>' [C++ Error] Unit1.cpp(573): E2094 'operator*' not implemented in type 'ComplexString<T>' for arguments of type 'ComplexString<double>' [C++ Error] Unit1.cpp(585): E2094 'operator/' not implemented in type 'ComplexString<T>' for arguments of type 'ComplexString<double>' [C++ Error] Unit1.cpp(598): E2094 'operator==' not implemented in type 'ComplexString<double>' for arguments of type 'ComplexString<T>' посмотрите файлик плз Присоединённый файл ( Кол-во скачиваний: 3 )
Unit1.cpp 31,21 Kb |
||||||
|
|||||||
| borisbn |
|
||||||||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
<T> - лишнее
а вот тут нужно добавить < T >
то же самое
то же самое
то же самое в функции SubMenu1
откуда взялось это <T> ??? в функции ShowSub1
тот же вопрос в функции SubMenu2
то же и т.д. и т.п. В общем совет такой - отложи программирование/кодирование и почитай какую-нибудь книжку про шаблоны, а то у тебя каша какая-то получается -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||||||||||||||
|
|||||||||||||||||
| tarasrng |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 8.7.2011 Репутация: нет Всего: нет |
borisbn, спасибо, разобрался, теперь все ок, только на операторах << и >> ругаеться.
например здесь
ошибка [Linker Error] Unresolved external 'operator <<(_STL::basic_ostream<char, _STL::char_traits<char> >&, const ComplexString<double>&)' referenced from D:\ÊÓÐÑÎÂÀ ÁÐÈÍÄÀÑ\LAST\UNIT1.OBJ и [Linker Error] Unresolved external 'operator >>(_STL::basic_istream<char, _STL::char_traits<char> >&, const ComplexString<double>&)' referenced from D:\ÊÓÐÑÎÂÀ ÁÐÈÍÄÀÑ\LAST\UNIT1.OBJ в чем проблема? Присоединённый файл ( Кол-во скачиваний: 4 )
Unit1.cpp 31,32 Kb |
||||||
|
|||||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
так неправильно. сделай так
и ещё - почему у тебя оператор >> принимает константную ссылку ? он что, не собирается менять эту переменную ? -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| tarasrng |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 8.7.2011 Репутация: нет Всего: нет |
переделал вот так:
теперь при каждом использовании >> или << ошибка [C++ Error] Unit1.cpp(547): E2335 Overloaded 'operator istream & >> <double>(istream &,ComplexString<double> &)' ambiguous in this context |
||||
|
|||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
чего-то я уже ничего не понимаю
вот - http://liveworkspace.org/code/b3fbd37eb646...38aad8a82ab93d2 - рабочий код. создай у себя простенькую программку из десятка строк и подтверди проблему на ней. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| tarasrng |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 8.7.2011 Репутация: нет Всего: нет |
borisbn, спасибо за советы. ваш код без проблем компилируется на visual studio, а c++ быдлер 6 ругаеться. для него я писал так
теперь все работает. |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
ну и ладненько... у меня только один мааааааленький вопрос. нафига тебе вообще шаблон, если ты нигде этот T не используешь ?
real и image у тебя double конструктор принимает double... -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| tarasrng |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 8.7.2011 Репутация: нет Всего: нет |
borisbn,
просто я сначала разобрался хоть немного с шаблонами в с++, я вообще на java пишу, но попросил друг курсак написать на с++, и в задании сказано, чтобы шаблоны были. теперь доделаю все как надо. |
||||
|
|||||
![]()
|
| Правила форума "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. |