Как эффективно использовать шаблоны? [дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как эффективно использовать шаблоны? [дубликат]

Сообщение Anonymous »

Недавно я писал код на C++. Я столкнулся с ситуацией, когда мне идеально подошёл бы класс шаблона, но я не уверен, стоит ли определять его члены в файле .cpp. Я хочу уточнить, что мне известно об определенных проблемах, возникающих с классами шаблонов, разделенными на заголовочные и исходные файлы, но я понятия не имею, как реализовать любые классы шаблонов в реальных проектах, сохраняя при этом порядок моего кода.
Рассмотрим векторный класс:
vector.h

Код: Выделить всё

template 
class Vector {
...
public:
Vector();
...
};
vector.cpp

Код: Выделить всё

#include "vector.h"

template 
Vector::Vector() {
//body
}
Конечно, определение объекта в main.cpp:

Код: Выделить всё

#include "vector.h"

int main() {
Vector v();
}
заставляет компилятор выдавать ошибку:

Код: Выделить всё

main.cpp:(.text+0x1c): undefined reference to `Vector::Vector()
Как люди справляются с такими ошибками?
Я читал это явное объявление типа класса, например. Vector решает проблему, но мне кажется, что я чего-то не понимаю и что это как бы противоположность всей этой идеи шаблона.

Подробнее здесь: https://stackoverflow.com/questions/785 ... ffectively
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»