我遇到了運算符超載的問題< <運算符。我試圖找到一個答案,但似乎大多數人沒有實施覆蓋。我只是在學習C++,但我認爲這可能是一個範圍問題。我試圖打印出一個有理數(分數和整數)類,它有兩個分子和分母成員。錯誤C2679:二進制'<<':沒有發現運算符需要'RatNum'類型的右側操作數(或者沒有可接受的轉換)
頭文件:
#ifndef RATMATH_H
#define RATMATH_H
using namespace std;
class RatMath
{
public:
RatMath(void);
virtual ~RatMath();
friend ostream& operator<<(ostream &output, RatNum &resultObj);
};
#endif
在RatMath類
:
ostream& operator<<(ostream &output, RatNum &resultNum)
{
int topNum = resultNum.getTopNum();
int botNum = resultNum.getBotNum();
output << topNum << "/" << botNum;
return output;
}
,然後將其從int主(呼叫),在GUI類(其未在頭部聲明 - 不是知道這是一個問題,但它工作正常的前):
RatNum testObj = RatNum(1, 3);
cout << testObj;
我試圖把在GUI CL倍率權屁股,看看它是否是一個範圍問題,但我不知道在哪裏把'朋友'聲明,因爲GUI類沒有定義在標題中。無論如何,它不起作用。有任何想法嗎?
RatMath類中的''是什麼意思? –
使成員函數靜態 – OMGtechy
@NeilKirk只是意味着過載實現函數位於名爲RatMath的類中。 –