есть класс с перегруженным оператором <<
template<class T>
class Array
{
private:
//...
public:
//...
friend ostream& operator<<(ostream &os, const Array<T> &obj);
};
Реализация перегрузки такая(реализация, как и положено, в хедере):
template<class T>
ostream& operator<<(ostream &os, const Array<T> &obj)
{
//..
return os;
}
В мейне пишу следующий код:
cout << "arr: " << arr << endl;
В результате выдает ошибку:
ошибка: undefined reference to `operator<<(std::ostream&, Array const&)'
В чем проблема? Перечитал уже все и русско и англо язычные форму, ни одни советы не помогают.