ostream& operator <<(ostream& os, const Test& test){
os<<"hooooo"<<endl;
return os;
}
在測試代碼:
Test t2 = Test(10, 20);
爲什麼cout<< t2 <<endl
編譯彈出錯誤?我已經完善了< <。
敵不過在「操作< <「的std ::法院< < T2」
ostream& operator <<(ostream& os, const Test& test){
os<<"hooooo"<<endl;
return os;
}
在測試代碼:
Test t2 = Test(10, 20);
爲什麼cout<< t2 <<endl
編譯彈出錯誤?我已經完善了< <。
敵不過在「操作< <「的std ::法院< < T2」
實際上你需要將它定義爲友元函數。運算符必須由運算符前面的操作數定義。因此,您可以使用friend
關鍵字來定義它,以便該功能仍然可以利用您的課堂內部功能,但是可以按照需要的方式工作。如果我不是很清楚,我很抱歉,自從我這樣做以來,它已經有一段時間了。不知道你應該在哪裏放置函數的主體。只需查看friend
關鍵字。
不,您不需要將其定義爲朋友。有人會說你應該,我會不同意他們。但他們和我都會同意這肯定沒有必要。 –
好的,謝謝,我從來沒有真正學過C++的那部分內容(主要是因爲我的教科書只是用於刻錄的一種類型) – AJMansfield
什麼是錯誤? –
當你說「在課堂測試中」時,你的意思是你已經將它定義爲'Test'類的成員函數嗎?不要這樣做,讓它成爲一個免費的功能。 'operator <<'是一個二元運算符。它需要左手參數和右手參數。當你使它成爲一個成員函數時,左邊的參數是隱含的。它是調用對象。如果這不是問題,請給出一個完整的代碼示例來說明問題。 –