На данный вопрос уже ответили:
есть класс с перегруженным оператором <<
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&)'
В чем проблема? Перечитал уже все и русско и англо язычные форму, ни одни советы не помогают.
Объявите друга (он же у вас шаблонный) так:
template<typename U>
friend ostream& operator<<(ostream &os, const Array<U> &obj);
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости