我有一個類,我試圖超載運算符< <。出於某種原因,它沒有被超載。在C++中重載插入運算符
這裏是我的.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中定義。
我在我的.cpp包含的iostream和.h
我一直拉我的頭髮試圖弄清楚這一點。你能看到這有什麼不對嗎?
編輯: 因爲我在做什麼似乎是正確的,這裏是我的全部源代碼: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
從一眼,cv-qualifier錯誤只是因爲你有函數設置爲常量在行377。 – goldPseudo 2009-11-11 01:55:57