Итак, умных книжек сейчас под рукой нет, где можно было бы сию инфу надыбать, так что спрашиваю тут.
Во-первых, если у меня в двух файлах A.cc и B.cc есть объявления (реализации) классов типа такого
class A{
private:
int n;
public:
A():n(0){}
A(int N):n(N){}
// можно еще какую-нибудь фигню приписать
};
тогда линковшик начнет ругаться, что, в принципе, и понятно.
С template-ами ситуация совсем иная. Отправить объявление типа:
template<class T>
class A{
private:
T n;
public:
A():n(0){}
A(T N):n(N){}
// можно еще какую-нибудь фигню приписать
};
в два различных файла, и там и там сделать A<int> -- и все будет прекрасно работать.
Соответственно, вопрос в том, а как оно так сделано?
Ответ на:
комментарий
от dilmah
Ответ на:
комментарий
от dilmah
Ответ на:
комментарий
от dilmah
Ответ на:
комментарий
от svu
Ответ на:
комментарий
от Alexey-ZAR
Ответ на:
комментарий
от Alexey-ZAR
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Шаблон класса (2008)
- Форум Как убрать прямое обращение к переменной в шаблоном классе. (2021)
- Форум Явное указание параметра шаблона (2013)
- Форум template с параметром по умолчанию (2023)
- Форум Инициализация бина с заданными опциями (2018)
- Форум C++ и замыкания (2005)
- Форум Стиль или как правильно (2014)
- Форум Непонятки с auto_ptr (2005)
- Форум Как правильно реализовать конструктор родителя внутри наследника? (2015)
- Форум Компиляция .so и непонятки с static членами класса (2018)