Я пытаюсь использовать простую функцию вывода шаблона класса indexedList с объектом простого класса.Я перегрузил оператор вывода в классе как функцию друга следующим образом:
//in header file
friend ostream& operator <<(ostream&, simpleClass&);
//in implementation file
ostream& operator <<(ostream& out, simpleClass& c1){
out << c1.stringDataMem;
return out;
}
Сам по себе работает нормально, но когда я пытаюсь использовать его с шаблоном класса indexedList, компилятор выдает ошибку,Вот выходная функция в шаблоне класса:
//in header file
void display() const;
//in implementation file
void indexList<T, maxSize>::display() const{
for (int i = 0; i < size; i++)
cout << elements[i] << endl;
}
В драйвере я просто добавляю несколько объектов simpleClass в массив "elements" в SimpleClass indexedList и пытаюсь использовать display ()функция.Это единственное сообщение об ошибке, которое я получаю:
"IndexList.cpp", line 38: Error: Formal argument 2 of type simpleClass& in call
to_operator<<(std::basic_ostream<char, std::char_traits<char>>&, simpleClass&)
requires an lvalue.
И шаблон класса, и простой класс работают хорошо сами по себе, но объединение их не дает.Любая помощь будет принята с благодарностью!