我想我一直在這個代碼太長。無論如何,這是發生了什麼。在這種情況下私人的錯誤C++
頭文件(該項目的範圍不允許對改變公衆)
#ifndef FRACTION_
#define FRACTION_
using namespace std;
#include <iostream>
class Fraction
{
private:
int num,denom;
public:
// Construct fraction from numerator and denominator
//
Fraction(int = 0, int = 1);
// Construct fraction by copying existing fraction
//
Fraction(const Fraction&);
// Assign into fraction by copying existing fraction
//
Fraction& operator=(const Fraction&);
// Return true if fraction is valid (non-zero denominator)
//
bool IsValid() const;
// Return value of numerator
//
int Numerator() const;
// Return value of denominator
//
int Denominator() const;
// Input/Output operations
//
friend istream& operator>>(istream&, Fraction&);
friend ostream& operator<<(ostream&, const Fraction&);
};
// Comparative operations
//
bool operator==(const Fraction&, const Fraction&);
bool operator!=(const Fraction&, const Fraction&);
bool operator< (const Fraction&, const Fraction&);
bool operator<=(const Fraction&, const Fraction&);
bool operator> (const Fraction&, const Fraction&);
bool operator>=(const Fraction&, const Fraction&);
// Arithmetic operations
//
Fraction operator+(const Fraction&, const Fraction&);
Fraction operator-(const Fraction&, const Fraction&);
Fraction operator*(const Fraction&, const Fraction&);
Fraction operator/(const Fraction&, const Fraction&);
#endif
我試圖重載+運算符,這裏是我的代碼:
Fraction operator+(const Fraction &f1, const Fraction &f2)
{
return(((f1.num*f2.denom)+(f1.denom*f2.num)),(f1.denom*f2.denom));
}
我得到一個錯誤引用num和denom作爲私有變量,我只是很難找出如何糾正這個問題。
這很有道理,感謝您的幫助 – sharkman
+1非常完整的答案 – sehe
@sehe,感謝您的編輯。它更可讀。 – chris