У меня есть класс, в котором я пытаюсь перегрузить оператор <<. По какой-то причине он не перегружен. </p>
Вот мой файл .h:
friend std::ostream& operator<<(std::ostream&, const course &); //course is my class object name
в моем .cpp, у меня есть это как моя реализация:
std::ostream& operator<<(std::ostream &out, const course & rhs){
out << rhs.info;
return out;
}
Это должно быть правильно, но когда я пытаюсь его скомпилировать, он говорит, что cout << tmp; не определено в ostream. </p>
Я включил iostream в мои .cpp и .h
Я вырывал свои волосы, пытаясь понять это. Вы видите что-нибудь, что не так с этим?
EDIT:
Поскольку то, что я делаю, кажется правильным, вот весь мой исходный код: http://pastebin.com/f5b523770
строка 46 - мой прототип
строка 377 - реализация
В строке 435 происходит сбой при попытке его скомпилировать.
также, я только что попытался скомпилировать его на другом компьютере, и вместо этого выдается эта ошибка:
course.cpp:246: error: non-member function 'std::ostream& operator<<(std::ostream&, const course&)' cannot have cv-qualifier
make: *** [course.o] Error 1