我只是想知道是否有人可以指出我遇到的問題。在C++中添加兩個對象(操作符重載)
我有三個文件:main.cpp中/ Fraction.cpp/Fraction.h
下面是相關Fraction.h(類)的信息:
class Fraction{
//Variables
int numerator;
int denominator;
};
的main.cpp中裏面,我聲明一些對象:
Fraction left, right, result, ref;
,然後嘗試將其添加在一起:
result = left + right;
所以後來我Fraction.cpp文件中(我知道它不是哪裏它應該是)我的操作符重載函數:
Fraction& operator+(const Fraction& l, const Fraction& r){
Fraction sum;
int numSum, denSum;
numSum = l.numerator2() + r.numerator2(); // these functions get the values
denSum = l.denominator2() + r.denominator2(); // these functions get the values
sum.set(numSum, denSum);
return sum;
}
出現以下錯誤告訴我,沒有功能的主要的表達式匹配:
w6.cpp:29:20: error: invalid operands to binary expression ('Fraction' and 'Fraction')
result = left + right;
有沒有人有任何想法,爲什麼發生這種情況?謝謝!
你有一個[叼着參考](http://stackoverflow.com/questions/6441218/can-a-local-variables-memory-be-accessed-outside - 它的範圍的)。無論如何,你使用過之前是否聲明過'main.cpp'可以看到的重載? – chris
知道了!我非常愚蠢:P。 – suitegamer