Здравствуйте, vlad0922, Вы писали:
V>Выдает ошибки: V>main.cpp:(.text+0xc8): undefined reference to `vect<int>::create(int)' V>main.cpp:(.text+0xed): undefined reference to `Set<int>::setElement(int, int)' V>main.cpp:(.text+0x10f): undefined reference to `Set<int>::print()'
V>Можете подсказать, как их решить?
Написать определения методов. Где у тебя в коде тело функции create, например? Пока его не существует.
Здравствуйте, vlad0922, Вы писали:
V>Есть класс
... V>Все функции заданы в соответсвующих .cpp файлах.
Это шаблон, а не класс, поэтому весь код имплементации надо втащить в тот же h-файл (рисовать его in-place или пустить простынёй после описания всего шаблона — дело вкуса).
В новых версиях компиляторов идут подвижки к тому, чтобы разрешить хранение кода шаблона отдельно от объявления шаблона, но лучше пока не надо делать такое в живых проектах.
Здравствуйте, Mr.Delphist, Вы писали:
MD>В новых версиях компиляторов идут подвижки к тому, чтобы разрешить хранение кода шаблона отдельно от объявления шаблона
Экспорт шаблонов, что ли? Эти подвижки давным-давно возникли и как-то завяли.
Здравствуйте, vlad0922, Вы писали:
V>Все функции заданы в соответсвующих .cpp файлах.
вам нужно перетащить весь код в .h файлы, проблемы с линковкой должны решиться
с шаблонами так часто делают. простые (нешаблонные) классы можно реализовывать в .cpp
успехов
Здравствуйте, uzhas, Вы писали:
U>вам нужно перетащить весь код в .h файлы, проблемы с линковкой должны решиться U>с шаблонами так часто делают. простые (нешаблонные) классы можно реализовывать в .cpp U>успехов
Как писк стиля: имплементации можно вытащить в отдельный хеадер .hpp и включать только там, где шаблоны используются. Либо оставить шаблоны в .cpp и сделать им явную инстанцинацию (тем самым и время компиляции резко снизить).
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, Mr.Delphist, Вы писали:
MD>>В новых версиях компиляторов идут подвижки к тому, чтобы разрешить хранение кода шаблона отдельно от объявления шаблона
К>Экспорт шаблонов, что ли? Эти подвижки давным-давно возникли и как-то завяли.
Оно самое, и вроде то ли Комео, то ли ГЦЦ его даже в каком-то виде умели есть — но согласен, инициатива как-то завяла