Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么代码没有';在代码块上不起作用,但在VS上起作用_C++ - Fatal编程技术网

C++ 为什么代码没有';在代码块上不起作用,但在VS上起作用

C++ 为什么代码没有';在代码块上不起作用,但在VS上起作用,c++,C++,这一行: “friend ostream&运营商 我的解决办法是: friend ostream& operator<<(ostream& os, const Fraction& obj) { int t = lcf(obj.fenzi, obj.fenmu); os << obj.fenzi/t << "/" << obj.fenmu/t; return os; } friend ostream&

这一行: “friend ostream&运营商 我的解决办法是:

friend ostream& operator<<(ostream& os, const Fraction& obj)
{
    int t = lcf(obj.fenzi, obj.fenmu);
    os << obj.fenzi/t << "/" << obj.fenmu/t;
    return os;
}

friend ostream&operator
&&
是必需的,因为
a1*a2
返回的r值无法绑定到非常量引用。它可以绑定到
const T&
,这将解决问题,但您的运算符需要非常量。请重新考虑在打印内部产生的副作用,这是意外和危险的。请确保代码正确Blocks被设置为c++11或更高版本。同样使用
&&
cout,错误消息已发布;您的结论是correct@LightnessRacesinOrbit谢谢,我没有注意到代码段上面的编辑。哦,好吧,我的错:D
cout << ++a1 << endl;//(1)
cout << a2++ << endl;//(2)
cout << a1 * a2 << endl;//(3)
Fraction a;
Fraction b = a;
if(debug_build)
  cout <<"LOG:"<<a<<'\n';
assert(a==b);
friend ostream& operator<<(ostream& os, const Fraction& obj)
{
    int t = lcf(obj.fenzi, obj.fenmu);
    os << obj.fenzi/t << "/" << obj.fenmu/t;
    return os;
}