2010-10-02 3 views
1

Можно создать дубликат:
Why can templates only be implemented in the header file?шаблоны в C++

Привет всем, я только что прочитал, что если я пишу какой-то шаблон, я должен написать весь код в файле заголовка (в том числе конструктор, desctructors ...), но я не могу понять, почему, может кто-нибудь объяснить?

ответ

0

Когда шаблон используются, это так же, как определен шаблоном класс или функция используются для создания нового класса путем замены параметров шаблона с прилагаемым параметры.

Код для этого нового класса скомпилирован правильно, когда это необходимо, поэтому весь исходный код должен быть там в то время.

См. this link в нижней части страницы для более подробной информации.

0

Поскольку шаблонный код можно скомпилировать только после того, как он известен, какой класс/тип заменяет шаблон, поэтому весь код должен быть доступен.

Существует очень подробное объяснение деталей в C++ FAQ