1) cout,c++,type-conversion,boolean,comparison,C++,Type Conversion,Boolean,Comparison" /> 1) cout,c++,type-conversion,boolean,comparison,C++,Type Conversion,Boolean,Comparison" />

C++;分数混合比较运算符错误 我是C++新手,尝试创建一个操作过载的C++分数类。在主函数的小于比较行出现错误之前,一切正常: Fraction someNum(15, 9); ...... if (someNum > 1) cout << "15/9 > 1." << endl; if (1 < someNum) //throws error cout << "1 < someNum." << endl; 分数someNum(15,9); ...... 如果(someNum>1) cout

C++;分数混合比较运算符错误 我是C++新手,尝试创建一个操作过载的C++分数类。在主函数的小于比较行出现错误之前,一切正常: Fraction someNum(15, 9); ...... if (someNum > 1) cout << "15/9 > 1." << endl; if (1 < someNum) //throws error cout << "1 < someNum." << endl; 分数someNum(15,9); ...... 如果(someNum>1) cout,c++,type-conversion,boolean,comparison,C++,Type Conversion,Boolean,Comparison,您需要一个运算符比较具有相反顺序的参数,因此它将匹配一个类似于op的op重载。您将需要一个运算符比较具有相反顺序的参数,因此它将匹配类似于op的重载 operator<(const error_condition& __lhs, ^~~~~~~~ c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\system_error:274:3: note: no known conversion for argu

您需要一个
运算符
比较具有相反顺序的参数,因此它将匹配一个类似于
op的
op
重载。您将需要一个
运算符
比较具有相反顺序的参数,因此它将匹配类似于
op的
重载
    operator<(const error_condition& __lhs,
            ^~~~~~~~
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\system_error:274:3: note:   no known conversion for argument 1 from 'int' to 'const std::error_condition&'
    //lesser than
    bool Fraction::operator<(Fraction right) {
    return (num * (denom * right.denominator())) < (right.numerator() * (denom * right.denominator()));}
    //greater than
    bool Fraction::operator>(Fraction right) {
    return (num * (denom * right.denominator())) > (right.numerator() * (denom * right.denominator()));}
struct Foo {};

bool operator>(Foo, int);

struct Bar {};

bool operator>(Bar, int);
bool operator>(int, Bar); // This one has the parameters in both orders

int main() {
    Foo f;
    f > 1;
    1 > f; // doesn't work

    Bar b;
    b > 1;
    1 > b; // works
}
struct Bar {
    friend bool operator>(Bar, int);
    friend bool operator>(int, Bar);
};